Android:我想改变我的图像视图的颜色

时间:2016-09-09 07:51:46

标签: android imageview

我想改变我的imageView的颜色。 粘贴下面的代码: -

首先我粘贴了footer.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="#f1eeee"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/fHome"
        android:background="@drawable/colorchanged"
        android:src="@drawable/home" />  <!-- your image here -->

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/fAttendence"
        android:src="@drawable/att" />

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/fTarget"
        android:src="@drawable/target" />
    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/fReport"
        android:src="@drawable/report" />
</LinearLayout>

pasted .png which i used in this file

pasted .png which i used in this file

当我点击imageView时,我想在其上设置蓝色。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您可以使用以下ColorFilter在视图点击时触发:

yourImageView.setColorFilter(getResources().getColor(R.color.your_color), PorterDuff.Mode.MULTIPLY);

请注意,这实际上会更改yourImageView个实例的状态,因此,您需要一个变量来跟踪它。

答案 1 :(得分:0)

这样做的方法是通过photoshop编辑这两个.png。 当前的“灰色”版本可以具有例如名称

  

home_button_unselected.png

编辑此图像并从灰色变为蓝色或您想要的颜色,将其另存为

  

home_button_selected.png

将它们导入您的项目,现在您拥有这两个文件。 (对于每张图片)

1)设置默认状态,我想这可能是“home_button_unselected.png”通过xml像这样:

   <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/fHome"
        android:src="@drawable/home_button_unselected" />

另外在图像视图中你不应该让android:background和android:src一起工作。如果你想知道这两者之间的区别,你可以谷歌。

2)然后在.java文件中,让我们说MainActivity.java你必须在该按钮上放置一个点击监听器,这意味着当用户点击时它会做一些事情。

  • 将您的按钮(ImageView)声明为全局变量(在o​​nCreate()之前)
  

私人ImageView mHomeButton;

  • 查找视图(在您的onCreate()中)
  

mHomeButton =(ImageView)findViewById(R.id.fHome);

如果你看一下上面的xml,fHome是imageView的id - &gt; “机器人:ID =” @ + ID / fHome“

  • 设置OnClickListener,以便当用户按下按钮时,图像从“home_button_unselected”变为“home_button_selected”。 (在onCreate())里面

mHomeButton.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
     mHomeButton.setImageResource(R.Drawable.home_button_selected); // setting the image to the selected one ( which is blue/selected)
    }
});

如果你有其他按钮,你应该先检查哪个被选中,如果选择了另一个按钮,那么所有其他按钮应该改为未选择的按钮