在android中使用两个ImageView

时间:2013-09-11 01:52:57

标签: android imageview onclicklistener

这是我的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" />

继承我的listerner代码

imgUSER.setOnClickListener(受听者);

...

public OnClickListener listener = new 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;

}

2 个答案:

答案 0 :(得分:0)

基本上,你有一个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
            }
     });

答案 1 :(得分:0)

imgUSER.setOnTouchListener(new OnTouchListener() {    
    public boolean onTouch(View v, MotionEvent event) {
        imgUSER.setBackgroundResource(R.id.bgProduct_1);    
        return false;
    }
  }
});

使用onTouch事件。触摸图像后图像会发生变化。您可以谷歌“Android onTouch更改图片”以获取更多示例代码。