求助,单击一个imagebutton,imagebutton显示不同的背景图片

让你望见影子的墙 2010-12-20 07:33:13
问题:imagebutton初始显示图片1,当单击该imagebutton时,imagebutton的背景图片显示为图片2,再单击该imagebutton又
显示图片1,如此反复。
我的思路:对该imagebutton设置监听,当单击的时候,先获取到该imagebutton现在使用的背景图片,然后进行判断该显示哪
一个背景图片。思路是否正确。
那么:如何获取该imagebutton现在显示的背景图片?
...全文
1417 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤风侠尘 2012-01-02
  • 打赏
  • 举报
回复
有一个很好的例子就是一个播放器的播放和暂停按钮,最好的解决办法应该是楼上几位说的设置一个标志位!!
kgdxingliang 2011-05-30
  • 打赏
  • 举报
回复
最简单的方法:你直接定义一个int count,代表点击次数,第一次点击就加1,第二次点击就归零,在等于1的时候就直接setbackground为第一幅,等于0的时候就setbackground为第二副就可以了
count+=1;
if(count==1){
edit.setBackgroundDrawable(getResources().getDrawable(R.drawable.finish));
}else if(count==2){
count=0;
edit.setBackgroundDrawable(getResources().getDrawable(R.drawable.edit));
}
lymnba 2011-03-22
  • 打赏
  • 举报
回复
如果是用一张图片上面有三个按钮怎样做呢?一张图片上有三个不同的状态
gezhibo1985 2010-12-21
  • 打赏
  • 举报
回复
同意楼上的思路
ameyume 2010-12-21
  • 打赏
  • 举报
回复
if(bImageFlg) {
// 设置背景图片1
} else {
// 设置背景图片2
}
bImageFlg = !bImageFlg;
ameyume 2010-12-21
  • 打赏
  • 举报
回复
设置一个boolean型标志bImageFlg = false;
在ImageButton点击事件中,
if() {
// 设置背景图片1
} else {
// 设置背景图片2
}
bImageFlg = !bImageFlg;
dinjay 2010-12-21
  • 打赏
  • 举报
回复
同LS 直接设置selector就可以了,自己指定按下和不按下的显示图片。
ArashmenZhu 2010-12-21
  • 打赏
  • 举报
回复
在事件里面这样写
boolean flag = false;


if(!flag){
imageView.setXXXXXX
flag = true;
}else{
imageView.setXXXXXX
flag = false;
}
Nico 2010-12-20
  • 打赏
  • 举报
回复
可以参考这个:


<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/org" />
<item
android:state_pressed="true"
android:drawable="@drawable/orgpressed" />
<item
android:state_focused="true"
android:drawable="@drawable/orgfocused" />
</selector>


在XML引用drawable的时候直接引用该xml就可以了,点击的时候就会有预期效果。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧