0

私はいくつかImageViewの'を持っています:

右矢印ボタンのセレクターは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="3" android:state_pressed="true"/> <!-- pressed -->
    <item android:drawable="1" android:state_enabled="false"/> <!-- enabled -->
    <item android:drawable="2"/> <!-- default -->

</selector>

1、、下の図のよう23見えます—1左矢印ボタン用ですが、右矢印ボタンは反対方向で同じように見えます)。

今私の問題は:

  1. ユーザーがクリックするsetEnable()と、ステータスを変更するために使用します。できます。
  2. ユーザーがロングクリックすると、もう一度、setEnable()ステータスを変更するために使用します。ただし、ユーザーが指を離した後、ボタンは画像としてのステータスを保持します#3
  3. 私は試しました:、、、、、、…しかしcancelLongPress()、それらは機能しませんでした。clearFocus()invalidate()post(Runnable)postInvalidate()refreshDrawableState()

アプリは最小限のSDK4(Android 1.6)を使用します。私たちを手伝ってくれますか?

ありがとう、

4

1 に答える 1

0

一時的な解決策:

...
imageView.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            v.postDelayed(new Runnable() {

                @Override
                public void run() {
                    v.setEnabled(...);
                }// run()
            }, 200); // 200 ms is enough
        }

        return false;
    }// onTouch()
});
于 2012-10-17T08:10:18.033 に答える