单击更改图像Android Studio的颜色

时间:2016-11-30 22:17:59

标签: java android image colors icons

我想知道你是否有人知道如何通过编码改变Android中图像的颜色。

例如:

Facebook的工具栏上有一个灰色图标:

enter image description here

但点击后,它变为蓝色:

enter image description here

有没有办法通过编码实现这种转变?或者它只是用新图像更改图标/可绘制。

谢谢。

4 个答案:

答案 0 :(得分:1)

您可以在每次点击时更改图片,或者可能也对您有用。

final ToggleButton test = (ToggleButton) findViewById(R.id.TEST);
    test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            test.setBackgroundColor(Color.parseColor("#FFFFFF")); // changes background color of "toggle button" widget to white when clicked!

        }

    });

所以要打破它;当点击切换按钮时,切换按钮的背景颜色将变为白色A.K.A“#FFFFFF”< - 别忘了“”! Heres a picture of whats happening

当然除了背景之外,还有一些选择。

PS我会评论以防这不是你想要的但我的代表太低了:-)让我知道这是否有用!快乐的编码!

答案 1 :(得分:1)

这完全是关于图标的颜色。如果需要,可以根据要从网站下载的颜色(黑白)

执行此操作

https://material.io/icons/

答案 2 :(得分:1)

您可以使用setColorFilter

更改色调
album=ForeignKeyAcrossDb(Singer, db_constraint=False, on_delete=models.DO_NOTHING)

答案 3 :(得分:1)

最后,我得到了解决方案。 我所做的,是创建一个新的更大的ImageView来设置一个“假的”背景,所以每次你点击第一个ImageButton,你设置第二个的背景。

结果如下:

  • 在按下按钮之前:

enter image description here

  • 之后

enter image description here

以下是获取此行为所需的代码:

XML:

 <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:weightSum="1">

        <ImageView
            android:layout_marginTop="5dp"
            android:layout_marginLeft="10dp"
            android:layout_width="70dp"
            android:layout_height="50dp"
            android:id="@+id/background_1_perfil"
            />

        <ImageButton
            android:layout_width="60dp"
            android:layout_height="40dp"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="15dp"
            android:background="@drawable/bandera_1"
            android:id="@+id/bandera1_perfil"
            android:layout_weight="1.47" />

爪哇:

final ImageButton bandera_1 = (ImageButton) findViewById(R.id.bandera1_perfil);
                final ImageView fondo_bandera_1 = (ImageView) findViewById(R.id.background_1_perfil);
                bandera_1.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if (background_1 == false) {
                            fondo_bandera_1.setBackgroundResource(R.drawable.fondodegradado);
                            background_1 = true;
                        } else {
                            fondo_bandera_1.setBackgroundColor(Color.parseColor("#ffffff"));
                            background_1 = false;
                        }
                    }
                });