如何显示ImageButton被按下?

时间:2012-05-07 07:18:14

标签: java android

如果我像这样添加图像,如何显示ImageButton被按下:

        Drawable testPic = getResources().getDrawable(R.drawable.test_pic);

        button.setImageDrawable( testPic ); 

并制作透明背景,以便只有图像:

button.setBackgroundColor(Color.TRANSPARENT); 

因此,当我按下图像按钮时,我看不到它被按下了。我希望在按下图像时会突出显示该图像。

此外,我的每个按钮都是由代码动态创建的,我不知道图像是什么以及有多少按钮。

那么任何想法?

感谢。

3 个答案:

答案 0 :(得分:2)

您应该使用selector来选择UI元素的所有不同外观,包括ImageButton

首先出现state_Pressed=true,这意味着按下后会是什么样子。之后是常规,这是按钮的正常状态。

答案 1 :(得分:1)

我认为你应该使用State List ......

答案 2 :(得分:0)

您必须在运行时更改图像。您可以在xml文件的帮助下实现这些功能。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/category_listing_bg_img" /> 
<item android:state_pressed="true"   android:drawable="@drawable/category_listing_bg_img_pressed" /> 
</selector>

将此xml复制到可绘制文件夹