我有一个用作按钮的图像。它是RelativeLayout中的ImageView。 RelativeLayout是接收触摸事件的视图。触摸时,我想将图像部分灰化为反馈。我该怎么做?
我能想到的最好的方法是在ImageView顶部放置另一个黑色背景的视图,并将其设置为100%透明,但触摸时只有50%透明。 有没有办法直接设置RelativeLayout或ImageView的样式而不使用其他视图?
提前致谢...
答案 0 :(得分:10)
你可以做的一种方法是为ImageView添加一个onclick方法,并在它变灰后为它设置一个标记,并使用ColorFilter为视图变灰。然后,当再次单击时,您可以取消灰色(如果您希望切换灰色)。这是一个例子:
将其添加到xml:
<ImageView
...
android:onClick="grayOut"/>
然后在Activity或View类中
public void grayOut(View view) {
// if not grayed
if(view.getTag() != "grayed") {
view.setColorFilter(Color.argb(150,200,200,200));
view.setTag("grayed");
} else {
view.setColorFilter(null);
view.setTag("");
}
}
答案 1 :(得分:0)
触摸时在视图上使用透明灰色的滤色镜,如果要删除灰色,请将其删除。它将是imageView.setColorFilter(透明灰色);如果要删除它,只需将颜色过滤器设置为空。