如何创建一个具有透明背景和阴影的形状,但形状轮廓后面的阴影不应该是可见的?

2024-03-09

这里有点类似的问题,但答案是只删除海拔和阴影......不是我想要的:Android CardView 透明时有奇怪的边框 https://stackoverflow.com/questions/31624085/android-cardview-with-weird-border-when-transparent/31624267

我想要的是 Pixel Launcher 搜索栏中显示的内容......即具有半透明背景和阴影的形状,但是阴影不与白色形状重叠(这最终会使它看起来是灰色的)。我基本上想要一个阴影,但在它的中间有一个洞,我的形状就是......

This is what I want to achieve (the search bar down the bottom): What I want

这是我尝试过的,但您可以从附图中看到,灰色阴影穿过半透明的白色背景。

活动主文件

    <FrameLayout
      android:layout_width="120dp"
      android:layout_height="120dp"
      android:background="@drawable/rectangle"
      android:elevation="8dp" />

矩形.xml

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

This is what my attempt looks like: My failed attempt

你可以看到,尽管我的形状是白色背景上的半透明白色,但由于下面的阴影,它变成了灰色,这不是我想要的。

我也尝试使用 View#setOutlineProvider 但没有成功。

我也尝试过玩https://github.com/harjot-oberai/MaterialShadows https://github.com/harjot-oberai/MaterialShadows

如果可以避免的话,我不想用 9patch 图像来做。


一种解决方案是将透明度应用于框架本身,而不仅仅是矩形的背景。这将产生类似于如图所示的效果。

例如:

<FrameLayout
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:elevation="8dp"
    android:alpha="0.6" />

如果您想要非透明元素,这当然会出现问题,要解决此问题,您可以提取背景,然后执行以下操作:

<FrameLayout
    android:layout_width="120dp"
    android:layout_height="120dp">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/rectangle"
        android:alpha="0.6"
        android:elevation="8dp" />
</FrameLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建一个具有透明背景和阴影的形状,但形状轮廓后面的阴影不应该是可见的? 的相关文章

  • Android ToggleButton 始终检查

    如果切换按钮处于选中或取消选中状态 我想存储在 SharedPreferences 中 toggle setOnCheckedChangeListener new OnCheckedChangeListener public void on
  • 使用同一个侦听器的多个活动

    我有 4 个活动 它们都包含一个 xml 页脚 其中包含 4 个按钮 每个活动一个 我现在想为这些按钮设置 onclicklistener 它是页脚中的自制菜单 问题是 如何使用侦听器以便重用代码 我有两个想法 创建一个实现 onclick
  • 为什么不能在 Fragment 中使用 ViewPager?它实际上是

    有信息无法使用ViewPager在一个Fragment在许多来源中 例如 Android 开发者繁忙编码指南 http commonsware com 作者 Mark Murphy 或者类似的帖子this https stackoverfl
  • Android 中使用黑白 alpha 蒙版的高效位图蒙版

    我想用黑白 alpha 蒙版来掩盖位图 我的蒙版图像是黑白的 黑色区域意味着透明 白色区域意味着不透明 我需要的是 当我使用此蒙版图像来蒙版任何其他图像时 如果蒙版图像的相应区域为黑色 则生成的图像区域应为透明 否则 生成的图像区域应该是不
  • 如何在不使用 Firebase 控制台的情况下发送 Firebase 云消息通知?

    我从新的 Google 通知服务开始 Firebase Cloud Messaging 感谢这段代码https github com firebase quickstart android tree master messaging htt
  • 写入 Android UI Automator 输出控制台

    我正在 Android UI Automator 上编写一个小包装器 通常我们可以在控制台看到测试用例的状态 我可以访问它并添加我自己的消息吗 我努力了System out println 但这没有用 有什么办法可以做到这一点吗 您可以使用
  • 如何在Android中的DataBinding的ViewModel类中获取R.string

    我目前正在使用databinding对于我的 Android 应用程序项目 我想设置error留言在我的CustomTextView from R string txtOldPassWordError并从另一个名为的类中进行设置ViewMo
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • Android L,使用 joda.time 库的异常

    该应用程序适用于所有设备 包括 nexus 5 和 nexus 7 在 Android L 预览版上运行相同的应用程序时 应用程序崩溃了 我一直在调试 并且调用 DateTime 构造函数发现了异常 public static String
  • Android 和 Google 地图内部片段以及其他控件和 viewpager

    我是android编程新手 我有一个带有 3 个页面 片段 的小应用程序 使用 pageradapter 和 viewpager 在它们之间滑动 其中一个页面包含复选框 和其他控件 和地图 我的问题是程序在启动时崩溃 Fragment co
  • 如何在android中的谷歌地图上聚焦标记

    我只是想知道我们是否可以关注 Android 应用程序中添加的标记 如果是 怎么办 或者有没有其他方法可以完成这项任务 可以说我使用下面的代码添加了一个标记 map addMarker new MarkerOptions title tit
  • 模拟器无法加载

    我正在使用 hello android 教程并通过 eclipse 创建 avd 启动模拟器时不使用图像 它只是显示一个黑色的后屏 中间有 ANDROID 字样 并且在 ANDROID 字样的末尾有一个闪烁的光标 我已按照 T 的步骤安装
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • Android - 状态栏阻止全屏

    我的应用程序启动时可以全屏正确运行 然而 在最小化然后返回应用程序后 状态栏会弹出 并将我的视图向下推一点 如何防止状态栏移动我的视图 这是我的布局
  • 双屏 Android Studio 中不显示自动补全

    我刚刚从 Eclipse 切换到 Android Studio IntelliJ 我不明白自动补全是如何工作的 我尝试了 Control Space Control Shift Space 但没有相关建议 不在 Java 文件中 也不在布局
  • Android - 存储对ApplicationContext的引用

    我有一个静态 Preferences 类 其中包含一些应用程序首选项和类似的内容 可以在那里存储对 ApplicationContext 的引用吗 我需要该引用 以便我可以在不继承 Activity 的类中获取缓存文件夹和类似内容 你使用的
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • 以 HTML 格式发送电子邮件

    我想发送 HTML 格式的电子邮件 如下图所示 我怎样才能做到这一点 请帮我 提前致谢 String body new String table tr td br header td tr br br Get b Best Score b
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • Android:透明活动问题

    最近 在我们的一款生产应用程序上 透明活动已停止工作 我的意思是它变成了黑色背景而不是透明背景 当我将活动的背景颜色设置为纯色 即红色 绿色等 时 它的应用不会出现问题 该问题可能是由于迁移到 AndroidX 引起的 但我没有这方面的证据

随机推荐

  • .NET Core 中类内部的结构对齐

    我试图理解为什么只包含 int 的结构在类中占用 8 个字节的内存 考虑以下代码 static void Main var rand new Random var twoIntStruct new TwoStruct new IntStru
  • 将最大子宽度分配给其他子宽度的弹性框

    我有一组宽度应该相似的孩子 对于简单的孩子来说 宽度最大的孩子应该分配给其他孩子 我尝试使用flexbox但无法得到它 是否可以在弹性盒中实现或者我应该去实现JS解决方案 请参考我尝试过的示例 请不要发布任何 javascript 答案 f
  • While循环第二次忽略scanf

    include
  • 尝试调整 NSImage 的大小,使其变成 NSData

    我有一个 NSImage 我正在尝试像这样调整大小 NSImage capturePreviewFill NSImage alloc initWithData previewData NSSize newSize newSize heigh
  • 包含不区分大小写的方法而无需进行重大代码更改?

    有没有办法忽略 contains 方法的大小写 但同时使代码片段或多或少相同 This method returns a list of all words from the dictionary that include the give
  • 如何在 Google 地球插件上放置 html div?我想涉及到wmode

    我遇到麻烦了在 Google Earth 插件上放置一个 html div在网络应用程序中 任何帮助将不胜感激 它适用于地图 地形和混合模式 但在 Earth 模式 Flash 启动并自动将地图分层在顶部 Z 索引没有帮助 想必我可以做这样
  • UseDefaultCredentials 与 Exchange Web 服务

    我是一个相当新的程序员 我在工作中承担的任务之一是使用我们的自定义工具来创建草稿电子邮件并将其放入运行该工具的用户的草稿电子邮件文件夹中 我们目前使用 Exchange Server 2010 但正在迁移到 Exchange Online
  • Ajax 错误:SyntaxError:预期表达式,得到“<”

    我正在尝试从我的服务器登录到另一台服务器到我的其他站点 但这个错误每次都会出现 SyntaxError expected expression got lt
  • NoMethodError:nil 的未定义方法“匹配”:NilClass

    我的申请有一个大问题 我的网站位于 AWS 上 今天早上我进行了上限生产部署以在线添加新版本 但我的网址不再有效 这对我来说是一个非常非常大的问题 所以我把我的问题放在这里 I use Ruby on Rails EC2 S3 and sh
  • 线程意外唤醒

    我预计以下示例中的第二个线程会挂起 因为它等待一个没有相应通知的对象 相反 它会进入 println 可能是由于虚假唤醒 public class Spurious public static void main String args T
  • 为什么这个 VBA 生成的 QR 码会卡顿? (仅限条形码-vba-宏)

    Context 我在用仅条形码 VBA 宏 https code google com archive p barcode vba macro only 在这个帖子 https stackoverflow com a 31663859 66
  • 如何使用 fpdf php 创建双条形图?

    我在我的 php 项目中使用 FPDF 我希望在我的项目中拥有像上图这样的 PDF 版本双条形图 FPDF 有一种方法可以创建饼图和条形图http www fpdf org en script script28 php http www f
  • 如何加快大型 xlsx 文件的导入速度?

    我想要处理一个 200MB 的大型 Excel xlsx 文件 包含 15 个工作表和 100 万行 每行 5 列 并根据数据创建 pandas 数据框 Excel 文件的导入速度非常慢 最多 10 分钟 不幸的是 Excel 导入文件格式
  • java将列表字符串写入csv文件

    我有一些如下所示的数组字符串 请注意 每个玩家后面都有空格 显示不同的行 user1 track1 player1 user1 track2 player2 user1 track3 player3 我想根据行数 此处为空格 将该数组分为两
  • 使用 win32com 从 Python 加载 Excel 加载项

    我从这里的各种问题中看到 如果使用以下命令从 Python 打开 Excel 实例 xl win32com client gencache EnsureDispatch Excel Application xl Visible True w
  • 长按ListFragment

    我正在使用 ListFragment 并执行 onListItemClick 一切正常 但现在我想使用长项目点击 例如 setOnItemLongClickListener new OnItemLongClickListener for a
  • 如何从对象中递归删除子对象?

    我正在研究解决方案 我已经创建了基本的树形表格 每当用户单击展开时 与单击的行相关的数据将根据行数据显示在其下方 我已经实现了展开 折叠至 N 个嵌套级别的基本功能 但我只遇到一个问题 所以基本上所有行都有基于具有多个值的数组的条件展开按钮
  • 为什么需要内存对齐? [复制]

    这个问题在这里已经有答案了 可能的重复 内存对齐的目的 https stackoverflow com questions 381244 purpose of memory alignment 我在网上读了一些关于内存对齐的文章 可以理解
  • 从查询中检索单个值

    我正在尝试根据字符串字段用户名从单个表中检索整数值 我已经尝试使用存储过程和直接文本 当我执行存储过程时 我得到了正确的返回值 然而 正确的结果并没有出现 这是两组代码 直接文字 public int GetUserRole string
  • 如何创建一个具有透明背景和阴影的形状,但形状轮廓后面的阴影不应该是可见的?

    这里有点类似的问题 但答案是只删除海拔和阴影 不是我想要的 Android CardView 透明时有奇怪的边框 https stackoverflow com questions 31624085 android cardview wit