我想改变我的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时,我想在其上设置蓝色。
任何人都可以帮助我吗?
答案 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 mHomeButton;
mHomeButton =(ImageView)findViewById(R.id.fHome);
如果你看一下上面的xml,fHome是imageView的id - &gt; “机器人:ID =” @ + ID / fHome“
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)
}
});
如果你有其他按钮,你应该先检查哪个被选中,如果选择了另一个按钮,那么所有其他按钮应该改为未选择的按钮