我有一个ImageButton并且我已经为它做了一个选择器,所以当我按下图像按钮时,会显示另一个图像。但是当按下图像按钮时,似乎必须等待1秒才能更改图像。这对用户体验来说并不是很好..
有可能解决这个问题吗?我已经找到了一些答案,但我现在还没有改变这一点。
这是我的代码
选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/main_pressed" />
<item
android:state_enabled="true"
android:drawable="@drawable/main" />
</selector>
布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg" >
<ImageButton
android:id="@+id/mainMosque"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@null"
android:contentDescription="@string/mainMosque"
android:src="@drawable/main_btn_mosque" />
</RelativeLayout>
答案 0 :(得分:0)
我不确定这是否能解决这个问题,因为这对我来说真是个新问题。但你可以试试以下
<ImageButton
android:id="@+id/mainMosque"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/main_btn_mosque"
android:contentDescription="@string/mainMosque"/>
和main_btn_mosque
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/main_pressed" />
<item
android:drawable="@drawable/main" />
</selector>
在selector
中它只是一个优化,因为默认情况下它已启用。
现在,如果问题仍然存在。再试一次。代替ImageButton
使用Button
。
答案 1 :(得分:0)
您可以使用ImageView而不是ImageButton,并使用Glide库将图像加载到视图中,这将提高应用程序的性能,您可以在此处阅读更多信息:https://github.com/bumptech/glide 希望这对你有用!
答案 2 :(得分:-1)
How can I make a Button more responsive?
这个链接提供了一些关于导致这种情况的线索,但是我没有成功地实现答案。
嗯...我通常扩展Button类并覆盖onTouchEvent方法
public boolean onTouchEvent (MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { setPressed(true); } return super.onTouchEvent(event); }