裁剪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 // 圆角半径 );

相关推荐
常利兵2 小时前
Android字体字重设置全攻略:XML黑科技+Kotlin动态实现,告别.ttf臃肿
android·xml·科技
therese_100862 小时前
安卓-IPC
android
沙粒02 小时前
Mac 使用 scrcpy 局域网无线投屏指南
android
过期动态3 小时前
MySQL中的约束
android·java·数据库·spring boot·mysql
牛蛙点点申请出战4 小时前
IconFontViewer -- 一个可以在 Android Studio 中实时预览 IconFont 的插件
android·前端·intellij idea
努力努力再努力wz5 小时前
【MySQL 进阶系列】拒绝滥用root:从 mysql.user 到权限校验,带你彻底理解用户管理与授权机制!
android·c语言·开发语言·数据结构·数据库·c++·mysql
HaiXCoder5 小时前
AndroidAutoSize 框架原理分析与核心问题
android
fengci.6 小时前
CTF+随机困难题目
android·开发语言·前端·学习·php
Le_ee6 小时前
SWPUCTF 2025 秋季新生赛wp2
android