今天在进行制作“绿米播放器”实验时,在点击播放按钮后,需要将按钮的图片更换为暂停图片,首先是使用如下代码进行实现:
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"
/>
所以相应的,要调用更改背景图片的函数才能更改图片! 我们再运行一下,看下效果:
点击播放按钮:
大功告成!