我从material.io下载了一些图标,但它们只提供黑色的图标。我看到一个YouTube视频,他们曾经允许您选择颜色。无论如何,我正在尝试将这些图标的颜色更改为白色,但是一直没有成功。 我尝试在Android Studio中更改填充颜色,但是它不起作用。如果能提供确切的代码和要添加代码的文件等任何帮助都将不胜感激。谢谢。
简单来说,你可以使用
android:tint="@android:color/white"
如前所述,material.io图标可以直接在Android Studio中下载。这种解决方案展示了矢量资源图标的导入方式,由于它们存储在单个位置(res / drawable)中,比存储在特定密度文件夹(hdpi,xhdpi等)中每个图标都有一个图像资源图标来管理更加容易。
现在您将有两个选项设置图标颜色
或者
imageView.setColorFilter(ContextCompat.getColor(context,android.R.color.white),PorterDuff.Mode.MULTIPLY);
https://material.io/icons/实际上可以让你下载白色图标。
但是,根据您想要做什么,有几个选择。如果您只想要白色图标(而不是在运行时更改它们),则可能会发现 Android Studio 的此插件很有用: https://github.com/konifar/android-material-design-icon-generator-plugin
它允许您在 Android Studio 中生成 Material Design 图标,并以任何颜色显示。下载不同颜色的这些图标的另一种选择是 https://materialdesignicons.com/。
如果您确实想在运行时为图标着色,请尝试类似于以下内容的东西:
imageView.setColorFilter(ContextCompat.getColor(context, android.R.color.white),
PorterDuff.Mode.MULTIPLY);
我使用属性android:foreground
代替android:src
android:foreground="@drawable/ic_add"
对于那些还没有得到他们想要的结果的人,尝试更改PorterDuff
模式,以下是我所做的
imageView.setColorFilter(ContextCompat.getColor(context, android.R.color.white),
PorterDuff.Mode.SRC_ATOP);
使用Android Compose,您可以尝试:
Icon(
painter = painterResource(id = iconId),
contentDescription = null,
modifier = Modifier.size(28.dp),
tint = MaterialTheme.colorScheme.secondary // set the color of your choice
)
app:iconTint="@color/white"