滞后改变背景

时间:2014-12-10 09:40:15

标签: android

我为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;
        }
});

2 个答案:

答案 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后,现在没有滞后。