关于两种更换ImageButton按钮图片方式的辨析

今天在进行制作“绿米播放器”实验时,在点击播放按钮后,需要将按钮的图片更换为暂停图片,首先是使用如下代码进行实现:

play.setImageResource(R.drawable.pause);

其中play为ImageButton,运行起来,结果如下:
在这里插入图片描述
点击播放按钮:
在这里插入图片描述
发现按钮的图片的确是更换了,但是好像有什么不对的地方,这并不是暂停图片啊,为什么会出现这种情况呢?一开始我也是想不通,一直认为可能是老师给的暂停图片本身就是这个样子的,等实验全部完成了,仔细来研究这个问题,突然意识到老师给的图片是png格式的,也就是暂停图片的两个竖线是透明的,这样一想就相通了,出现这种情况的问题就是上面的代码起到的实际作用并不是更换图片,而是叠加图片,它并不会删除原有的图片,而是在原有图片的基础上叠加新图片,所以出现了现在这个情况,那么该如何更改呢?代码如下:

play.setBackgroundResource(R.drawable.pause);

也就是说,我们要真正起到更改按钮图片的作用,需要调用的是setBackgroundResource函数,因为在布局代码中,我们设置的ImageButton的图片,其实是按钮的背景:

<ImageButton
            android:id="@+id/tv_play"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@drawable/play"
            />

所以相应的,要调用更改背景图片的函数才能更改图片! 我们再运行一下,看下效果:
在这里插入图片描述
点击播放按钮:
在这里插入图片描述
大功告成!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值