裁剪SurfaceView

并不是真正的裁剪SurfaceView,而是用 FrameLayout 包裹 SurfaceView达到视觉裁剪。

举例:给外层 FrameLayout 设置圆角轮廓 + 开启轮廓裁剪,让 FrameLayout 把超出圆角的部分 "挡住",从而让矩形 SurfaceView 看起来是圆角的。

activity_main.xml

java 复制代码
<FrameLayout
    android:id="@+id/frame_layout"
    android:layout_width="2560px"
    android:layout_height="1168px"> 

    <SurfaceView
        android:id="@+id/surfaceview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:layout_centerInParent="true"/>
</FrameLayout>

MainActivity.java

java 复制代码
mFrameLayout = findViewById(R.id.frame_layout);
mFrameLayout.setOutlineProvider(new ViewOutlineProvider() {
    @Override
    public void getOutline(View view, Outline outline) {
         // 定义圆角矩形轮廓
        outline.setRoundRect(0, 10, view.getWidth(), view.getHeight()-10, 70);
    }
});
mFrameLayout.setClipToOutline(true); // 开启轮廓裁剪
mFrameLayout.setClipChildren(true);  // 裁剪所有子View

outline.setRoundRect( left, // 左边界 top, // 上边界 right, // 右边界 bottom, // 下边界 radius // 圆角半径 );

相关推荐
JMchen1232 小时前
【Android 性能优化实战 60 讲】06 GPU 呈现模式与卡顿视觉验证:拆解柱状图分层,秒辨渲染慢与等待慢
android·性能优化·实战·源码分析·渲染优化·gpu呈现模式·卡顿优化
91刘仁德9 小时前
MYSQL 事务原理及使用
android·mysql·adb
一笑的小酒馆11 小时前
AndroidKMP之瀑布流实现
android
RainyJiang11 小时前
AI时代下,Android的边界正在消失
android·openai·ai编程
Android-Flutter12 小时前
android 内存抖动详解
android
方白羽13 小时前
为什么 Android 非要用 Intent 传值?
android·ios·harmonyos
方白羽16 小时前
Android17 重写 MessageQueue,解决 Handler 隐性卡顿
android·app
蜡台16 小时前
Kotlin 零基础完整版实战教程|从语法入门到Android工程实战
android·开发语言·kotlin
律宏阔17 小时前
Android 车载 USB 开发笔记:USB Host、USB 串口、USB-CAN、HID 与系统 API
android
律宏阔17 小时前
Android 车载串口开发笔记:UART、RS232、RS485、串口配置与数据通信
android