透明背景视图中的高程

2023-11-23

我有一个具有自定义背景的项目列表。背景是一个简单的形状,带有填充白色的圆角矩形绘图。所以我的观点类似于卡片。我可以在它上面设置一个高度并且它可以工作。它的下面有一个影子。

但我想优化它。我的窗口背景是白色的,所以我想我可以删除View的背景颜色来减少过度绘制。但事情没那么简单。一旦我在视图的背景可绘制中将颜色设置为透明,标高就会停止工作,并且不再绘制阴影。我尝试在视图的 bakcground 可绘制对象中使用描边而不是纯色,但它也不起作用。这可能是因为一个ViewOutline。所以我创建了一个自定义OutlineProvider返回类似这样的内容:

outline.drawRoundRect(0,0,view.getWidth(), view.getHeight(), someRadius); 

Now my View背景透明,阴影也可见,但有问题。看起来不太好。在顶部View它下面有某种可见的背景。下面是我的输出的图片。左边是一个具有透明背景的视图和一个自定义的 OutlineProvider。右侧是不透明白色背景的视图。

enter image description here

这是一个错误吗?或者还有其他方法可以实现这一目标吗?看起来这是一个非常简单的性能优化,但事实证明它比应有的要复杂得多。


我相信这与 Lollipop 中的一个已知问题有关https://code.google.com/p/android/issues/detail?id=78248

感谢您的报告和重现步骤 - 这确实是一个错误,而且它 刚刚在内部分支中修复。将对外发布 在未来的版本中。

作为解决方法,您可以在 GradientDrawable 上设置 alpha, 或在投射阴影的视图上设置自定义轮廓提供程序(通过 View#setOutlineProvider) 从后台查询轮廓并 覆盖可绘制对象提供的 alpha。

问题是 GradientDrawable 在以下方面过于保守 在具有透明填充的情况下报告 0 alpha。 (看 GradientDrawable#getOutline(),出于好奇)

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

透明背景视图中的高程 的相关文章

  • getItemAtPosition() 未在列表视图中返回值

    我创建了一个自定义基本适配器类 用图像和文本填充列表视图 类的代码如下 public class ViewAdapter extends BaseAdapter private Activity activity private Strin
  • Android 中的列表视图到 pdf

    我有一个自定义列表视图 我想从整个列表视图制作pdf 我参考了很多帖子并实现了下面的代码 该代码将我的列表视图转pdf 但问题是它不包含整个列表视图项目 pdf 中仅提供前几项 我的转换函数列表视图转pdf is fab setOnClic
  • android studio更新到3.0后任务执行失败

    当我更新 Android Studio 3 0 时 出现错误 unable to merge with dex 然后我添加了mutiDexEnabled true并且还添加了com android support multidex 1 0
  • Android 服务 START_STICKY START_NOT_STICKY

    我需要让我的服务始终在后台运行 并使用 startService 函数启动我的服务 无论应用程序的状态如何 我都不想重新启动服务 这是我的观察 START STICKY gt 如果应用程序启动 则服务正在重新启动 当应用程序关闭时 服务也会
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • Android 上 Java 库中的代码出现 NoClassDefFoundError

    我的用户经常遇到错误 应用程序在启动期间崩溃 当应该加载 MainActivity 时 VM 显然找不到该类 我不明白为什么 该应用程序的架构是 我的免费版和专业版都使用一个通用项目 不知道是否相关 请参阅下面的堆栈跟踪 有什么想法吗 ja
  • 如何修复运行 Android 模拟器时出现 GPU Driver Issue 错误

    我的 Android 模拟器几周前运行良好 但现在出现错误 当我运行代码时 GPU 驱动程序问题错误对话框与模拟器一起弹出 当我单击 确定 时 Android 模拟器不会按预期运行应用程序 错误如下 Your GPU driver info
  • 如何编写 adb jdwp + adbforward 脚本?

    我正在尝试使用命令行和脚本工具调试 Android 应用程序 我已经受够了 Android Studio 占用我的 CPU 要连接到我的应用程序 我需要adb jdwp获取 pid 然后adb forward tcp 8700 jdwp
  • 具有多个字符串的列表视图

    我正在尝试创建一个包含多个字符串的列表视图 现在我有一个可以实现的功能 while i lt 10 GETS DATA FROM WEBPAGE ETC a DATAFROMWEBPAGE1 b DATAFROMWEBPAGE2 c DAT
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • android device.getUuids 返回 null

    我正在尝试使用低功耗蓝牙 BLE 通过 Android 应用程序连接到 Arduino Uno 我正在 Android Studio 上进行开发 使用 Samsung Galaxy S4 和 Android 版本 5 0 1 进行测试我点击
  • 为什么 Android 上的免安装应用有两种设置?

    我使用的是运行 Android 11 的 Pixel 3 我发现有 2 种不同的设置可以控制免安装应用的某些方面 设置 应用程序和通知 默认应用程序 打开链接 即时应用程序 即使未安装 也打开应用程序中的链接 切换默认为开 Google P
  • 如何从Android webview下载文件?

    我下面的代码可以很好地加载 url 页面 并且在搜索歌曲后 当我单击下载链接时 它崩溃了 关于如何让下载管理器与网络视图一起工作的教程并不多 我究竟做错了什么 import java io File import android app A
  • 可下载字体例外

    我决定使用可下载字体 https developer android com guide topics ui look and feel downloadable fonts html在我的项目中 IS 按照指南中的建议实施了所有内容 当我
  • 使用磁场计算旋转矩阵

    在获取旋转矩阵值时它包含public static boolean getRotationMatrix float R float I float gravity float geomagnetic 这里我如何计算float gravity
  • 尝试重新打开已关闭的对象:sqlitequery

    所以本质上我查询数据库两次 我不明白这个错误真正来自哪里 因为我没有在任何地方关闭数据库 返回错误的代码是这样运行的 我查了一下 刚刚看到一个像我这样的案例 BeaconHandler pullAllDB new BeaconHandler
  • 如何在 Android 的应用程序中使用 LDAP 身份验证?

    我想在我们的应用程序中添加 LDAP 身份验证 我在 Github 上搜索并找到了两个应用程序 但它们无法连接到服务器 通过ldap连接服务器的必要条件是什么 查看 UnboundID SDK 他们有一个适用于 Android 的套件 该应
  • 活动构建变体没有测试工件

    我基于 调试 构建变体创建了一个名为 bitrise 的新构建类型 使用 debug 构建变体时 经过检测的 androidTests 构建并运行良好 但是当我切换到新的 bitrise 构建变体时 出现以下错误 Process finis
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • Android 中用于过渡的自定义动画对象?

    我想用一些更奇特的东西来覆盖 Android 中的默认活动转换 我想做的事情不能用通常使用的 XML 集来完成 所以我不能使用overridePendingTransition因为它只接受对基于 XML 的动画资源的整数引用 我想做的是创建

随机推荐

  • 浏览器对渐变中 CSS“透明”的处理

    虽然 CSS 颜色rgba 255 255 255 0 and rgba 0 0 0 0 显然是相同的 即transparent 当被视为纯色时 它们会影响渐变中的中间颜色 linear gradient left center rgba
  • 使用 JDBCTemplate 流式传输 JDBC 查询结果

    我正在使用 spring java 我需要返回一个Stream来自数据库查询的对象 我使用ObjectMapper将它们映射到 JSON 查询结果可能非常大 超过 500k 个对象 因此我不想将它们存储在内存中 我已经做到了JpaRepos
  • Swift 3 警告:在检查可选值时使用了“String”类型的非可选表达式

    我正在将一个项目更新到 Swift 3 并遇到以下我似乎无法解决的警告 fileprivate var filteredTitlesList String if let filteredTitle String filteredTitles
  • jest mockgoose - jest 在测试运行完成后一秒没有退出

    我有一个猫鼬模型 var mongoose require mongoose var transactionSchema mongoose Schema category type String required true Category
  • 连接和查询 SQL Server Express 数据库的正确方法

    我需要一个连接到 SQL Server Express 数据库的示例 C 控制台应用程序 代码 并将一些变量插入到表 laptops 中 SQL Server Express 是 localhost 用户名是数据库 密码是testdatab
  • 在循环内添加短暂的延迟可防止其无限循环。为什么?

    在使用 NET async await API 时 我遇到了一个好奇心 循环忽略了用作超时的延迟 直到我在循环内添加了短暂的延迟 这是如何运作的 这不是最直观的行为 完整程序 using System using System Thread
  • 使用 r 通过下拉 html 表单导航和抓取网页

    我正在尝试从中抓取数据http www footballoutsiders com stats snapcounts 但我无法更改网站下拉框中的字段 团队 周 位置 和 年份 我尝试使用 rvest 来抓取与 team ALL week 1
  • C# 从 mongodb 获取单个对象

    我找到了一段使用 MongoDB 驱动程序从集合中获取单个对象的代码 这不可能是正确的 不是吗 有更好的方法吗 IMongoCollection
  • 如何在 JMeter 的 while 循环中使用 CSV 数据集配置?

    我需要针对 5 到 10 个服务器测试同一组 url URL 在 CSV 文件中定义 服务器名称在用户定义变量配置中定义 我使用基于服务器数量的 While 控制器来迭代和执行 url 请求 我当前的逻辑定义如下 Thread group
  • 从函数返回之前等待 AJAX 完成?

    我有以下内容 function doAjax var result false ajax url data done function Do a bunch of computation blah blah blah result true
  • 原始类型上下文中的菱形运算符

    今天看到这样的代码 public class GenClass
  • 逗号作为分隔符和运算符

    所以我在某个地方遇到了这个问题 Case 1 int a a 1 2 3 printf d a Case 2 int a 1 2 3 printf d a 解释说 第二种情况会出错 因为逗号用作分隔符 在第一种情况下 优先于 所以基本上是
  • 如何在 C/C++ 中挂钩 Windows 函数?

    如果我有一个函数foo Windows 已在 kernel32 dll 中实现 并且它总是返回 true 我可以让我的程序 bar exe 挂钩 绕道该 Windows 函数并使其对所有进程返回 false 吗 因此 如果我的 svchos
  • 如果我的 Java 源文件中存在语法错误,为什么 Eclipse 会生成 .class 文件?

    当我使用 Eclipse IDE 创建项目时 即使代码中存在语法错误 它也会生成类文件吗 class Test public void test String value System out println TEST CALLED WIT
  • 强制将 Excel 窗口置于前面?

    我开发了一个小应用程序C NET我不知道为什么有些用户一直告诉我 当他们打开 Excel 文件时 窗口不会出现在前面 顶部 尽管我将可见设置为 true 并将窗口状态设置为最大化 这是读取的函数excel file public stati
  • FLD指令x64位

    我在 x64 位中使用 FLD 指令时遇到一些问题 想将Double值加载到st0寄存器中的堆栈指针FPU 但这似乎是不可能的 在 Delphi x32 中 我可以使用以下代码 function DoSomething X Double D
  • 使用 WebApi 的 OData 分页 ( $inlinecount )

    我正在使用 OData 对从 Web api 调用返回的一长串项目进行分页 我可以通过带有开始和结束索引的 url 过滤数据 我的问题是 我如何知道项目的总数 因此 我可以在调用 Web API 的移动设备上显示第 1 页 共 3 页 20
  • 相机启动预览失败

    我正在创建一个相机应用程序 但我遇到了问题startPreview 它向我发送 java lang RuntimeException startPreview failed 这是我的相机Activity public class Camer
  • Azure Web应用程序无法访问Azure DB

    我有一个带有 SQL 数据库和 asp net 5 Web 应用程序的 Azure 试用帐户 数据库服务器防火墙对我的本地计算机 IP 有一条规则 并且还启用了 允许访问 Azure 服务 复选框 我可以毫无意外地从本地 Sql Serve
  • 透明背景视图中的高程

    我有一个具有自定义背景的项目列表 背景是一个简单的形状 带有填充白色的圆角矩形绘图 所以我的观点类似于卡片 我可以在它上面设置一个高度并且它可以工作 它的下面有一个影子 但我想优化它 我的窗口背景是白色的 所以我想我可以删除View的背景颜