我正在尝试在Android Studio中给我的图像一个点击效果。其思想是当您按下按钮时应用滤色器,然后在松开按钮后滤色器被清除。
我曾尝试使用OnTouch方法的Switch语句来完成此操作,但是当我打开应用程序时,它就崩溃了。
下面是我的代码:
{
final ImageView DNIcon_id = (ImageView) findViewById(R.id.DNIcon_id);
DNIcon_id.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
sp.play(DN_id, 1, 1, 1, 0, 1);
switch (event.getAction()) {
case (MotionEvent.ACTION_BUTTON_PRESS): {
DNIcon_id.setColorFilter(Color.GRAY, PorterDuff.Mode.LIGHTEN);
break;
}
case (MotionEvent.ACTION_BUTTON_RELEASE): {
DNIcon_id.clearColorFilter();
break;
}
}
return true;
}
});
}
}如果你知道我做错了什么,请告诉我。我真的很感激。
由衷地,
维达尔
发布于 2016-08-26 22:53:41
将此代码添加到res/values/colors.xml
<color name="opaque">#90FFFFFF</color>将res/drawable/overlay.xml放入其中
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/opaque" android:state_pressed="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>下面是一个如何使用它的示例
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="150dp"
android:layout_height="150dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/your_image_here"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/overlay"/>
</FrameLayout>颜色上的注释:
您可以更改颜色中的'90‘,使其或多或少变得不透明。请记住,它是十六进制的,所以完全不透明度将是'FF‘。此外,此解决方案假设您在应用程序中使用#FFFFFF作为您的窗口背景。“不透明”颜色的最后6位数字应该是你用来作为窗口背景的任何东西。
https://stackoverflow.com/questions/32977585
复制相似问题