android ImageView设置选择器不起作用

时间:2015-03-17 11:25:25

标签: android android-imageview

<item android:drawable="@drawable/chiduole_big" android:state_pressed="true"/>
<item android:drawable="@drawable/chiduole"/>

这是@ drawable / image_selector

xml代码

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image_selector"
            />

3 个答案:

答案 0 :(得分:2)

你的代码很好。您只需在ImageView中添加android:clickable="trueandroid:focusable="true",或将其与LinearLayout.setClickable(true);等代码结合使用。

也许你的image_selector应该如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:drawable="@drawable/chiduole_big"
        android:state_focused="true" />
    <item 
        android:drawable="@drawable/chiduole_big"
        android:state_pressed="true" />
    <item android:drawable="@drawable/@drawable/chiduole" />
</selector>

修改

我看到你做错了什么。你已宣布android:onClick="true"; onClick内部的内容是一个方法而不是布尔值。所以,你可以这样做:

<ImageView android:onClick="MyMethod" 
    android:focusable="true"
    android:clickable="true"
    android:id="@+id/iv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/image_selector" />

然后,在Java中,您应该使用以下内容:

ImageView iv = (ImageView) findViewById(R.id.iv1);

iv.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        MyMethod(v);
    }
});

public void MyMethod(View v) {
    // Your Code
}

答案 1 :(得分:0)

尝试将android:clickable="true"放入ImageView

答案 2 :(得分:0)

xml代码:

<ImageView
            android:clickable="true"
            android:focusable="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/image_selector"
            />

image_selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item 
    android:drawable="@drawable/chiduole_big"
    android:state_focused="true"
    />
<item 
    android:drawable="@drawable/chiduole_big"
    android:state_pressed="true"
    />
<item android:drawable="@drawable/chiduole" />
</selector>

它不起作用