我想让我的图像按钮高亮一点,就像按下“普通”按钮时的正常发光效果一样。所以我试图把图像放进去,但是图像背面有一个“灰色区域”,所以我把它弄透了,所以只有图像会显示,然后发光效果消失了。这个问题有方法解决吗? :)
请参阅imgur图片作为示例 - Example image here
如果是“硬”,我可以使用图像背后的灰色区域,但是可以将其设为绿色并具有相同的高光效果吗?
我应该将代码放在MainActivity或我的片段java中吗? 片段java
String
Int
答案 0 :(得分:1)
将要突出显示的imageView放在具有鲜艳颜色的视图上方,并将视图的可见性设置为等于View.GONE。现在使用你的ImageButton
((ImageButton)findViewById(R.id.myImageBtn)).setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
myView.setVisibility(View.VISIBLE);
break;
}
case MotionEvent.ACTION_UP:
myView.setVisibility(View.GONE);
break;
// Your action here on button click
case MotionEvent.ACTION_CANCEL: {
myView.setVisibility(View.GONE);
break;
}
}
return true;
}
});
答案 1 :(得分:1)
您可以使用用户选择器绘图,并为每个状态提供3个不同的按钮绘图。创建这些文件是drawables文件夹并将此行添加到按钮android:background =" @ drawable / button_selector"
button_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- pressed -->
<item android:drawable="@drawable/camera_button_hold" android:state_pressed="true"/>
<!-- focused -->
<item android:drawable="@drawable/camera_button_hold" android:state_focused="true"/>
<!-- default -->
<item android:drawable="@drawable/camera_button_normal"/>
</selector>
camera_button_hold.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#673ab7"/>
</shape>
camera_button_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="2dp"
android:color="#673ab7"/>
</shape>