0

これは私のImageViewsです。@id/imgUSERは @id/imgBG の背後にあります。しかし、imgUSERをクリックしても応答しません。しかし、imgBGを削除してテストし、imgUSERをもう一度クリックすると動作します。imgBGが表示されているか存在している場合、imgUSERをクリックできる方法はありますか?

<ImageView
    android:id="@+id/imgUSER"
    android:layout_width="285dp"
    android:layout_height="185dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="120dp"
    android:background="@android:color/background_dark"
    android:src="@android:drawable/ic_menu_gallery" />

<ImageView
    android:id="@+id/imgBG"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linearLayout1"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="32dp"
    android:src="@drawable/products" />

リスナーのコードはこちら

imgUSER.setOnClickListener(リスナー);

....

public OnClickListener リスナー = 新しい OnClickListener(){

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){

        case R.id.imgUSER :
            imgUSER.setBackgroundResource(R.id.bgProduct_1);

            break;

}

4

2 に答える 2

0

基本的に、1 つの Textview が別の Textview の上にあります。これで、上部の Textview のみがタッチ イベントを受け取ります。代わりに imgUSER に受信させたい場合は、onTouchReceiver を変更します。

imgBG.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
     //your code here   
     return false; //this is the key
            }
     });
于 2013-09-11T02:26:22.043 に答える
0
imgUSER.setOnTouchListener(new OnTouchListener() {    
    public boolean onTouch(View v, MotionEvent event) {
        imgUSER.setBackgroundResource(R.id.bgProduct_1);    
        return false;
    }
  }
});

onTouch イベントを使用します。画像をタッチすると画像が変わります。「Android onTouch change Image」をググると、サンプル コードをさらに取得できます。

于 2013-09-11T02:43:24.987 に答える