android ImageView 设置选择器不起作用
android ImageView set selector does not worked
<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"
/>
尝试将 android:clickable="true"
放入 ImageView
你的代码很好。您只需在 ImageView 中添加 android:clickable="true
和 android: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
}
<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"
/>
尝试将 android:clickable="true"
放入 ImageView
你的代码很好。您只需在 ImageView 中添加 android:clickable="true
和 android: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
}