android - 如何在android中制作圆角SurfaceView?

标签 android

我正在开发一个 Android 应用程序来流式传输视频。为此,我使用 SurfaceView。有没有办法让SurfaceView变成圆角?

我尝试了以下代码来制作圆角。它可以使 Button、Layout、TextView 圆角,但它不适用于 SurfaceView

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >


<!-- view background color -->


<!-- view border color and width -->
<stroke
    android:width="5dp"
    android:color="#FF0000" >
</stroke>

<!-- If you want to add some padding -->
<padding
    android:bottom="4dp"
    android:left="4dp"
    android:right="4dp"
    android:top="4dp" >
</padding>

<!-- Here is the corner radius -->
<corners 
    android:radius="20dp">
</corners>

这段代码在 SurfceView 上显示了一个红色的圆形边框,但 View 本身并不是圆形的。

如何使 SurfaceView 圆角化?

请帮我解决这个问题。

提前致谢

最佳答案

为此,您必须处理视频的每一帧以屏蔽它们。

查看lockCanvas的使用。基本上,您必须创建一个辅助线程,该线程始终锁定 Canvas 、拍摄视频帧、对其进行 mask 、绘制并释放 Canvas 。

查看这篇文章以获取示例:

http://androidtutorialsandtips.blogspot.com/2012/01/overriding-ondraw-method-in-surfaceview.html

关于android - 如何在android中制作圆角SurfaceView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125357/

相关文章:

android - 使用 cordova-plugin-ionic-webview 版本冲突?

java - 如何从 HttpPost 获取响应

android - 开设 AdMob 帐户

java - 根据当前用户 Firebase Android 的父子键获取键值

android - 从联系人 ID : android 中检索电话号码

Android 6.0.1 谷歌地图异常IllegalAccessError

android - 使用 Retrofit 下载 URL

java - 如何获取应用程序的大小

javascript - Android 平板电脑(Samsung galaxy 选项卡)- 表格在方向改变时弄乱了

android - Flutter 图像选择器明确请求许可