如何让安卓应用的图标背景透明?
Posted
技术标签:
【中文标题】如何让安卓应用的图标背景透明?【英文标题】:How to make the icon background of an Android app transparent? 【发布时间】:2019-03-07 04:09:27 【问题描述】:一个PNG图片作为图标的前景,背景应该是完全透明的。
在 Asset Studio 中使用 android Studio > New Image Asset > Configure Image Asset dialog
,几乎可以尝试多种背景选项组合,包括从路径中完全删除文件以及删除 ic_launcher.xml
和 ic_launcher_round.xml
中的背景标签。
在此向导中从路径中删除文件并从 XML 文件中删除标签几乎可以解决问题,但仍保留一个微弱的黑色轮廓作为背景 (~alpha=20%)。在查看设备启动器上的图标时,背景层的所有其他选项都会在前景图像后面留下纯白色或黑色背景。
许多应用只在其图标上设置了前景,因此这是可能的。我在这里做错了什么?
更新:感谢您的快速cmets!我尝试了作为答案提供的两种解决方案,结果相同。屏幕截图已按建议上传。
仅在向导中更新旧版图标是不够的,因为这只会更改旧版图标格式。更新的“自适应”图标也是必需的。即使背景设置为完全透明的方形 png,Android Studio 也会将其更改为白色。如果背景文件被完全删除,向导会允许完成,但 Android Studio 会使用稍微不透明的黑色背景,如图所示。对于上传的图片,前景后面应该没有任何东西,完全灰色到在这种情况下没有任何可见的圆圈。
Screen capture from device running API 25
【问题讨论】:
你能展示一下你正在得到什么以及你正在努力实现什么吗? 如果你想为 ic_launcher 使用透明图标,然后将你的 512x512 大小的图标粘贴到 drawable 中,你不需要通过 -new image assets > configure... 只粘贴就可以了.然后在 manifest 中引用新粘贴的图标 (如果您想查询否决票,请在 cmets 中进行。大多数不登录或不投票的人对此并不感兴趣。大多数要求解释投票的呼吁都被忽视了反正选民,所以我建议你忽略它。) @halfer 我会在这里跟随你的领导,因为这是我的第一篇文章,我将尝试通过 cmets 征求对否决票的解释。 @halfer 最好能对帖子中的问题有所了解,否则我只会受到空洞的谴责,没有改进的能力。 【参考方案1】:方法一:
如果您有 png,只需将其复制并粘贴到 drawable 中,然后从清单中引用图像名称。
<application
android:allowBackup="true"
android:icon="@mipmap/new_image"
android:label="@string/app_name"
android:roundIcon="@mipmap/new_image"
android:supportsRtl="true"
android:theme="@style/AppTheme">
....
</application>
方法二:
转到文件 > 新建 > 图像资产,确保选择 png 图像(具有透明背景)并将背景形状设置为无。
【讨论】:
对我有用的解决方案是同时实现这两种方法。 非常非常非常感谢@AmirDe,赞成使用方法 1 拯救我的一天。【参考方案2】:首先你有一个背景图片来获得透明图标,没有任何背景图片你不能让你的图标透明。
如果您希望图像透明,您只需使用一些照片编辑器。
【讨论】:
【参考方案3】:获取 imageButton 的视图
View v = findViewById(R.id.myImageBtn);
从应用程序中获取图标,例如 Chrome
pkgnam="com.android.chrome";
Intent intent1 = ctx.getPackageManager().getLaunchIntentForPackage(pgknam);
Drawable myIcon = getPackageManager().getActivityIcon(intent1);
将背景图标设置为与前景图标相同
v.setForeground(myIcon);
v.setBackground(myIcon);
【讨论】:
上下文 ctx; ctx = 这个;以上是关于如何让安卓应用的图标背景透明?的主要内容,如果未能解决你的问题,请参考以下文章