![](/img/trans.png)
[英]How can I stretch the image in imagebutton to the whole area of the imagebutton?
[英]How can I know which Image on the ImageButton is?
我正在使用ImageButton,每次单击后都应更改其图像。 这是我的代码无法运行:
public class MainActivity extends Activity {
ImageButton button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (ImageButton)findViewById(R.id.imageButton1);
button.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
if(button.getBackground().equals(R.drawable.lok))
{
button.setBackgroundResource(0);
button.setBackgroundResource(R.drawable.lok2);
}
}
};}
我知道这部分应该是错误的:if(button.getBackground()。equals(R.drawable.lok))
有人有其他解决方案吗?
提前致谢
您应该使用Tag
。 使用setTag()
以及单击按钮getTag()
来为按钮设置标签。 这是一个例子 。
您还可以检查图像按钮的Tag
。 例如,只要设置ImageButton的Background,就可以使用setTag(X)。 那么您可以比较其标记,然后更改其背景和标记。
* 尝试一下*
public void onClick(View v) {
if(button.getBackground().equals(R.drawable.lok))
{
if(Integer.parseInt(v.getTag())== R.drawable.lok2){
}else{
}
button.setBackgroundResource(0);
button.setBackgroundResource(R.drawable.lok2);
button.setTag(R.drawable.lok2);
}
}
假设您要更改5张图片,然后使用int i
变量
public class MainActivity extends Activity {
ImageButton button;
int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (ImageButton)findViewById(R.id.imageButton1);
button.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
button.setBackgroundResource(0);
switch (i % 5) {
case 0:
button.setBackgroundResource(R.drawable.image0);
break;
case 1:
button.setBackgroundResource(R.drawable.image1);
break;
case 2:
button.setBackgroundResource(R.drawable.image2);
break;
case 3:
button.setBackgroundResource(R.drawable.image3);
break;
case 4:
button.setBackgroundResource(R.drawable.image4);
break;
default:
break;
}
i++;
}
};
}
如果要在单击按钮时更改按钮的图像。 首先,您应该在res / value中添加有关图像的一些信息。 然后,如果我们需要交换3个pictrue,则只需要创建选择器即可。xme int res / drawable
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@drawable/t3"/>
<item android:state_focused="true"
android:drawable="@drawable/t1"/>
<item android:state_pressed="true"
android:drawable="@drawable/t2"/>
<item android:drawable="@drawable/t3"/>
</selector>
很抱歉,我的英语不好,我的方法只有我尝试过
这样尝试
Drawable fDraw = button.getBackground();
Drawable sDraw = getResources().getDrawable(R.drawable.lok);
if(fDraw.hashCode() == sDraw.hashCode())
{
//same
}
else
{
//not same
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.