当前位置: 首页 > 知识库问答 >
问题:

提供的Android SDK图标可以设置颜色吗?

慎风畔
2023-03-14

Android SDK提供了以下图标。

有没有办法给那些设置颜色...如果可能的话,怎么做?

    <ImageView
        android:id="@+id/share_button"
        style="@style/IconNav"
        android:src="@android:drawable/ic_menu_share"/>

    <ImageView
        android:id="@+id/bookmark_button"
        style="@style/IconNav"
        android:src="@android:drawable/ic_input_get"/>

使现代化

在对项目进行了完整的刷新之后,发现Xml中的tint属性起到了作用。

简而言之

...这是为我工作的解决方案-将属性添加到ImageView xml:

    android:tint="@color/grass_dark"

来自@goldenb的答案是对解决这个问题的不同方法的全面介绍,所以我将其标记为答案。

共有2个答案

王英奕
2023-03-14

您可以使用带有色彩的位图。将其添加到您的绘图文件夹中。

ic_输入_着色。xml:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@android:drawable/ic_input_get"
        android:tint="@color/yourDesiredColor"/>
鲜于璞瑜
2023-03-14

您确实可以使用色调作为改变ImageView颜色的一种方式,但是应该提醒您,android: tint将始终应用在原始颜色之上。

正如博客作者danlew所说

>

Android:着色仅限于ImageView。您希望能够在任何视图中着色任何Drawable。

一个可能的选择是使用android ColorFilter

根据官方的留档:

颜色过滤器可与油漆一起使用,以修改用该油漆绘制的每个像素的颜色。这是一个抽象类,不应该直接使用。

你可以用ColorFilter做很多或多或少复杂的事情,但是你如何应用这些呢?

另一个so问题的一个简单例子是:

//White tint
imageView.setColorFilter(Color.argb(255, 255, 255, 255)); 

or

imageView.setColorFilter(ContextCompat.getColor(context,R.color.COLOR_YOUR_COLOR))

或者从这里得到一个更完整的答案

ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview);
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview);
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview);



// we can create the color values in different ways:
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY );
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY );
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY );

如果你想了解更多,你应该查看这些链接

那么,android布局xml中的background、backgroundTint和backgroundTintMode属性之间有什么区别呢?

setColorFilter()

快速Android资产主题与色彩滤镜

所以修改android drawable的颜色

 类似资料:
  • 我想知道如何改变由'com.android.support:design:22.2.0'库提供的FAB(浮动操作按钮)小部件的图标颜色从绿色到白色。 style.xml activity_main.xml

  • 我正在使用mpandroid图表库创建饼图。 我想格式化饼图上的文本标签,但我不知道如何做到这一点 但是,它只改变数据的值,而不是标签。此外,我想成为饼图中的标签。我还尝试使用以下代码, 但是,它不起作用。 我的代码如下: 简而言之,我想做的就是 更改饼图中的标签颜色(从白色变为黑色) 防止标签超出饼图。(如图中所示的剩余划痕) 有人能帮我吗? 我还尝试了以下链接中提到的这些解决方案。 链接1链接

  • Since 8.0 setTitleColor 可通过接口调用,改变TitleBar的颜色 使用方法 AlipayJSBridge.call("setTitleColor", { color: 16775138, reset: false //(可选,默认为false) 是否重置title颜色为默认颜色。 }); 代码演示 <div style="padding-top:80px;">

  • 所以我想在条形图中选择一个条形图,当我选择一个条形图时,它会改变条形图的颜色(我知道怎么做),但也会改变相应x轴标签的颜色。有没有办法做到这一点,如果有,谁能帮帮我吗?

  • 我使用TextInputLayout,如果输入字段是强制性的,我希望以编程方式设置提示文本颜色和浮动标签颜色。在转到TextInputLayout之前,我使用以下方法以编程方式设置提示文本颜色 有人能指导我如何通过编程方式为TextInputLayout设置提示文本颜色和浮动标签颜色吗。

  • 由于某种原因,我必须将图标包装在标记中。 是否有可能将字体出色的图标的颜色更改为黑色? 或者只要它包装在标记中就不可能?字体真棒应该是字体而不是图像,对吧?