我环顾四周,但在任何地方都找不到问题的答案。我有一个imageButton,并希望在按下按钮时更改图像。我试图想办法让Eclipse按字面解释我的代码。
String card = nextcard.toString(); //Becomes "Ace_Of_Hearts", for example
theImageButton.setImageResource(R.drawable.card); //R.drawable.Ace_Of_Hearts is an image in the correct folder
可悲的是,这不起作用。但由于卡变量动态变化,我无法对特定图像进行硬编码以将按钮设置为。那么我应该如何设置图像?
答案 0 :(得分:0)
您可以使用imagebutton选择器执行此操作。 首先在res / drawable btn_selector.xml中创建选择器
<?xml version="1.0" encoding="utf-8"?>
<item android:drawable="@drawable/button_bg_selected" android:state_selected="true"></item>
<item android:drawable="@drawable/button_bg_normal"></item>
现在您可以将此selctor用作图像按钮的src。
<ImageButton
android:id="@+id/button1"
android:src="@drawable/btn_selector"
android:layout_width="200dp"
android:layout_height="126dp"/>
答案 1 :(得分:0)
获取可绘制目录中所有卡片的ID:
Integer ace_of_hearts_id = R.drawable.ace_of_hearts;
Integer ace_of_spades_id = R.drawable.ace_of_spades;
Integer queen_of_hearts_id = R.drawable.queen_of_hearts;
Integer ten_of_hearts_id = R.drawable.ten_of_hearts;
....
将ID和字符串名称作为键值对放在HashMap中:
HashMap cardMap = new HashMap<String,Integer>();
cardMap.put("ace_of_hearts",ace_of_hearts_id);
cardMap.put("ace_of_spades" ace_of_spades_id);
......
然后添加您的代码:
String card = nextcard.toString(); //Becomes "Ace_Of_Hearts", for example
theImageButton.setImageResource(cardMap.get(card)); /
还没有实际编译代码,所以可能会有错误,但这应该给你一个基本的想法。