如何在android中创建圆角videoview?

2024-04-16

In my application, I want to display videoview as a rounded corners. I have tried placing videoview/surfaceview inside linearlayout with rounded corner set to linearlayout. but it does not work perfectly. I can not set rounded corner to videoview/surfaceview. I want to set view as below image: enter image description here

有人知道如何做到这一点吗?


不知道为什么当解决方案非常简单时会有这么多不好的答案(只要你的最小 sdk > 21)。创建一个形状并将其放在视频上方是行不通的,因为您显然希望背景是透明的以查看其后面的视图。

我在这里找到了答案Android 视图裁剪 https://stackoverflow.com/questions/5574212/android-view-clipping。您只需将视频视图放入框架布局中,向框架布局添加圆形背景,添加轮廓提供程序并将框架布局剪辑到轮廓即可。

的背景rounded_video_background:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#000000"/>
    <corners android:radius="16dp" />

</shape>

其内部的框架布局和视频视图:

<FrameLayout
        android:id="@+id/video_view_container"
        android:layout_width="90dp"
        android:layout_height="120dp"
        android:background="@drawable/rounded_video_background"
        android:outlineProvider="background">

        <VideoView
            android:id="@+id/video_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            />

    </FrameLayout>

最后一步是剪切轮廓(没有找到在 xml 中实现的方法,所以我以编程方式完成了):video_view_container.clipToOutline = true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中创建圆角videoview? 的相关文章

  • Android平台源码中哪里可以找到版本信息

    Android 平台源文件中的版本信息在哪里找到 我尝试查找 设置 gt gt 中列出的有关手机的一些信息 显示的一些信息包括固件版本 模块编号 基带版本 内核版本 你可以给它办理登机手续platform build core versio
  • Android 从键盘读取

    我的登录屏幕根本没有文本字段 当用户使用 RFID 扫描仪扫描他的 id 令牌时 我会得到一个 8 个字符长的字符串 其原理与使用键盘相同 只是更快 我希望我的登录活动在用户扫描其令牌时而不是之前执行 有一个聪明的方法来实现这个吗 我不能有
  • Notification.Builder 中 setGroup() 的用途是什么?

    我对目标的理解有些困难setGroup http developer android com reference android app Notification Builder html setGroup java lang String
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • Android-全屏视频视图

    我正在尝试使此 VideoView 以全屏模式显示 public class ViewVideo extends Activity private String filename private static final int INSER
  • 如何找到特定路线上两点之间的距离?

    我正在为我的大学开发一个 Android 应用程序 可以帮助学生跟踪大学巴士的当前位置 并为他们提供巴士到达他们的预计时间 截至目前 我获取了公交车的当前位置 通过公交车上的设备 和学生的位置 我陷入了必须找到两个 GPS 坐标之间的距离的
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • Android 中带有透明背景的 ImageButton [重复]

    这个问题在这里已经有答案了 我已经按照这篇文章在android中制作ImageButton 安卓图像按钮 https stackoverflow com questions 2283444 android image button 图像出现
  • 如何在 Android 应用程序中使用多个 Graph API 获取 Facebook Notes 项目的评论?

    我想使用 Graph API 显示 Facebook 页面的注释项目以及这些评论和点赞 为此 我使用 Facebook SDK 中的 asyncFacebookRunner 步骤是这样的 调用 asyncFacebookRunner req
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • Proguard - 找不到任何超级类

    我收到此错误 Unexpected error while performing partial evaluation Class org apache log4j chainsaw Main Method
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 与 Dagger 一起使用时,Espresso 生成 FileNotFoundException

    我一直在研究旧版 Android 应用程序 尝试为其添加测试和适当的架构 该应用程序有一个主要LaunchActivity它在启动时运行一系列检查 最初 该活动使用 Dagger 来 注入依赖项 活动将使用它来运行检查 但效果相当糟糕 我转
  • 在上下文操作模式下选择时,ListView 项目不会在视觉上“突出显示”

    我关注了 Android 官方网站创建上下文操作菜单的教程 http developer android com guide topics ui menus html CAB 使用下面的代码 当我长按我的 ListView 项目之一时 它确
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • Android中绑定适配器有什么用?

    我一直在阅读有关Android中绑定适配器的文章 但我似乎不明白它 何时使用绑定适配器 有人可以用一个简单的例子来解释它吗 我读过的一篇文章在主活动中有一个绑定适配器 绑定适配器有一个参数 toastMessage 显然 只要 toastM
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr
  • 进程被杀死后不会调用 onActivityResult

    我有一个主要活动 Main 和另一个活动 Sub 由 Main 调用 startActivityForResult new Intent this SubActivity class 25 当我在 Sub 时 我终止该进程 使用任务管理器或

随机推荐

  • 在单个 Java 项目中运行测试突然开始无提示地失败

    我有一个项目 我已经工作了几周 没有出现任何问题 自从昨天早上开始工作以来 我根本没有进行任何更改 但是从昨天下午开始 在该项目中运行任何测试都会默默失败 I see or rather don t see the same thing r
  • 使用ajax请求显示进度条进度

    我想在 ajax 请求触发和完成时使用 jquery ui 进度条显示进度 问题是我不知道如何根据ajax请求的进度设置进度条的值 下面是一段代码 function ajaxnews newstabs a click function e
  • 在 AngularJS 的 ng-bind 中使用过滤器后添加更多文本

    所以我想在 ng bind 指令中通过过滤器放置一个变量 ng bind input filter 但我想插入更多文字 ng bind input filter more 但这不起作用 有没有办法在 ng bind 中添加更多文本 就像您简
  • CMake子目录依赖

    我对 CMake 很陌生 事实上 我正在通过 Kdevelop4 widh C 进行尝试 我习惯为我创建的每个命名空间创建子目录 即使所有源代码都必须编译并链接到单个可执行文件中 好吧 当我在 kdevelop 下创建一个目录时 它会使用
  • Chart.js - 如何禁用悬停时的所有内容

    如何设置代码使图表上没有悬停效果 悬停选项 悬停 链接等 我正在使用 Chart js 下面是我的代码 我在其中设置饼图 Html div style width 90 div
  • 锁定安卓手机

    当用户按下按钮时 我试图以编程方式锁定设备 我知道我需要使用deviceAdminReciever我已经这样做了 但是每当我运行它时我的应用程序就会崩溃 以下是我的清单
  • 为什么 IE8 使用 Facebook 的 React.js 时会出现脚本错误

    我正在使用 Facebook 反应 不确定是什么导致了这个错误 似乎是反应本身 我收到 IE8 脚本错误 React js 的第 10898 行对象不支持此属性或方法 我没有使用缩小版本 这是带注释的开发版本 还有人遇到 facebook
  • 如何获取受 SQLAlchemy 影响的行数?

    如何使用 sqlalchemy 获取更新语句影响的行数 我正在使用 mysql 和 python pyramid from sqlalchemy engine base import ResultProxy classmethod def
  • 在命名空间中包装 extern“C”库时出现问题

    我正在使用 C 中的 C 库 libgretl 它的一些函数与我的代码冲突 所以我想将它包装在命名空间中 如下所示 namespace libgretl extern C include
  • 在没有 unsafeCoerce 的情况下兼顾存在主义

    最近我一直在研究这种类型 我理解它是自由分配函子的编码 有关切线背景 请参阅这个答案 https stackoverflow com a 56822105 2751851 data Ev g a where Ev g x gt x gt a
  • 作为服务在 Heroku 或其他云平台上进行蓝绿部署

    我们目前正在 Heroku 上使用两个测功机运行 Ruby on Rails 项目 RefineryCMS 每次更新网站时 我们都会遇到大约 1 到 2 分钟的停机时间 管理层对此并不满意 我们真正想要的是某种 透明的 蓝绿部署 http
  • 使用 requirejs 调用函数

    如何使用 requirejs 调用函数 这是一个过于简单的问题 但令人惊讶的是 到目前为止没有任何教程或示例能够帮助我 这是我的 html 文件中的代码
  • git 仅克隆具有特定扩展名的文件

    有没有办法只克隆具有特定扩展名的文件 例如 只克隆 sh 文件 我知道我可以克隆整个文件 然后删除剩余的文件 但我不想浪费 谢谢 None
  • AWS Lambda 的打包代码

    我正在尝试打包 AWS Lambda 的代码 Lambda 有各种限制 例如使用 Node 6 10 并且没有像 AWS EB 那样的构建步骤 我还使用 NPM 模块 因此这些模块需要与 AWS Lambda 处理程序捆绑在一起 这是我想做
  • SetVisible(false) 更改面板中组件的布局

    当我将子面板之一设置为不可见时 如何使主面板中的子面板保持在原来的位置 我所拥有的看起来像 Panel1 Panel2 Panel3 Panel4 当我做panel3 setVisible false 它看起来像 Panel1 Panel2
  • Bootstrap 3 - 如何在单击时淡入警报框并在 3 秒后淡出

    我正在使用 AngularJS 和 Bootstrap 3 我的 Web 应用程序有一个 更新 按钮 用于保存用户所做的任何更改 当用户单击 更新 按钮时 我想激活并淡入引导程序的警报框 显示 信息已保存 然后在 3 秒后淡出 我不知道如何
  • 如何在 javascript google 地图 API 上使用米显示 geojson 数据

    GeoJson 文件坐标以 X Y 米为单位 而不是 lng lat 如何在谷歌地图上显示 GeoJson数据 type FeatureCollection features type Feature geometry type Multi
  • Keycloak 中的多租户可以在单个领域内完成吗?

    首先 我非常了解 Keycloak 中的多领域多租户方法 我接手了一个遗留项目 没有人想到多租户 现在 两年后 客户突然需要此功能 实际上 微服务已经为这种场景做好了开箱即用的准备 客户开发了一个移动应用程序 通过我们的 keycloak
  • 在arcore中的3D对象上使用模板蒙版时出现问题

    我正在使用 hello ar java demo 在 3d 对象上使用模板掩模 但是我遇到了一些意外的行为 我的模板蒙版正确遮挡了平面渲染器 但 3D 对象 andy 似乎没有按预期做出反应 相反 如图所示 他似乎被翻转了 我不知道如何解决
  • 如何在android中创建圆角videoview?

    In my application I want to display videoview as a rounded corners I have tried placing videoview surfaceview inside lin