我为ImageButton定义了一个OnTouchListener。当我触摸此ImageButton以及其他操作时,我更改了父布局的背景可绘制,这是一个PNG图像。
之前,我没有更改背景drawable,而是更改了父布局的背景颜色,并立即完成了。但是现在,改变背景图像会有大约半秒或更短的延迟。
我不能接受这种滞后,那么,减少它的最佳方法是什么?如上所述,图像是推荐使用的PNG,但它的大小约为1.4MB。这可能是问题吗?
btn_gas.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
/*Change background*/
rlayout.setBackgroundResource(R.drawable.background1_gas);
...
break;
case MotionEvent.ACTION_UP:
/*Back to default background*/
rlayout.setBackgroundResource(R.drawable.background1);
...
break;
}
return true;
}
});
答案 0 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background1_gas"
android:state_pressed="true" />
<item android:drawable="@drawable/background1_gas"
android:state_focused="true" />
<item android:drawable="@drawable/background1" />
使用选择器来满足这种需求。
答案 1 :(得分:0)
解决了缩小图像尺寸的问题。该图像的像素大小为1440x900。在将它减少到640x400后,现在没有滞后。