如何让安卓应用的图标背景透明?

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.xmlic_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 = 这个;

以上是关于如何让安卓应用的图标背景透明?的主要内容,如果未能解决你的问题,请参考以下文章

具有透明背景的 iOS 应用程序图标在设备上显示黑色背景

如何摆脱(Android Asset Studio - 图标生成器)中的透明背景空间?

怎么制作ICO图标使背景颜色为透明?

使字体真棒图标背景透明[重复]

C语言API如何让窗口里的部分背景透明?

如何使仅显示图标的 Dojo 按钮的背景透明