ImageButton图片背景的切换

时间:2022-11-16 20:11:01

图形按钮:以图形代表文字,并且可以按照按钮的状态,列入,正常、按下(press)、聚焦(focus),来显示对应的图形文件,又称做自定义按钮·

ImageButton图片的切换有多种现在先来说在xml中的切换

在xml实现动态切换使用selector标签,代码如下

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android=http://schemas.android.com/apk/res/android

   <item android:state_pressed="true"

    android:drawable="@drawable/android_pressed"/>

 <item android:state_pressed="true"

  android:drawable="@drawable/android_focused"/>

<item android:drawable="@drawable/android_normal"/>

</selector>

以selector来定义图形按钮有哪些状态选项,每一个<item>子标签都代表一个选项

state_pressed="true"代表了按钮被按下此时按钮图片的状态"

state_focused="true"代表了按钮被聚焦是图片按钮图片的状态聚焦也就是触控球或轨迹板焦点移到按钮上的状态

最有一个是按钮没有任何点击或者聚焦时的状态

下面来说在java代码中对图片的操作

与ImageView控件一样,有很多方法可用于设置ImageButton控件显示的图形,其中包括如下4种。

setImageButton:用于将ImageButton控件显示的图形设置为一个Bitmap对象

setImageDrawable():用于将ImageButton控件显示的图形设置为一个Drawable对象

setImageResource():用于将ImageButton控件显示的图形设置为一个资源标示符

setImageImageURI():用于将ImageButton控件显示的图形设置为一个URI地址

 在java代码中写监听然后更改背景图片时候我曾遇到过一个问题然后点击按钮后背景图片不会切换

最终经过验证使用setBackgroundResource()加载drawable中的selector.xml最终成功了

其中set方法有setBackground(Drawable background);

 setBackgroundDrawable(Drawable background);

setBackgroundColor(int color);

setBackgroundResource(int resid);

set方法有很多个设置的方法也不止是一个在这里设置的时候我们一定要注意了看清楚里括号里面的参数选择正确的set方法

不然最后肯定得不到想要的结果换可能报错

其中ImageButton的单击事件有两种

一setOnClickListener()点击一下释放后

--setOnLongClick()处理长时间安卓一个按钮后的事件