0

私はこのmain.xmlファイルを持っています:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
>

<ImageView 
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/z01"
    />
<ImageView 
    android:id="@+id/img2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/z02"
    />

</LinearLayout>

私が達成しようとしていることは次のとおりです。

  • ユーザーがimg1を長押しすると、画像が押された画像に変わります(つまり、z01.pngからz01_pressed.pngに変更されます)
  • たとえば、ユーザーが押したままimg1からimg2に移動すると、img2が押され(画像がz02.pngからz02_pressed.pngに変更され)、img1がその状態(z01.pngに)に戻ります。

これを達成するために、私はこれをonCreateメソッドで書きました:

    final ImageView img1 = (ImageView) findViewById(R.id.img1);
    final ImageView img2 = (ImageView) findViewById(R.id.img2);

    img1.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            img1.setBackgroundResource(R.drawable.z01_pressed);
            return false;
        }
    });
    img2.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            img2.setBackgroundResource(R.drawable.z01_pressed);
            return false;
        }
    });

ただし、これは機能しません。何か問題がありますか?

4

2 に答える 2

0

ボタンを使用して、そのボタンの描画可能オブジェクトとしてカスタム画像を設定できます。そうすれば、押された状態と押されていない状態を自分で管理する必要がなくなります。このリンクを参照してください:

http://blog.androgames.net/40/custom-button-style-and-theme/

于 2011-07-03T10:28:26.183 に答える
0

興味があるかもしれない人へ:

これは、OnDragListenerを使用して実行できます。これを達成するには、いくつかの作業が必要です。私は自分の生活を楽にするためにそれをあきらめました。

于 2012-01-12T00:53:09.233 に答える