关于切换自定义组件(Button,CheckBox,EditText)被点击或选中时背景的方法


当我们觉得某些组件的样式 不给力的时候(比如Button,CheckBox,EditText),就会想到给这些组件自定义样式了,这里提供简单的两种方法:

一、改背景
比如说Button,我们可以使用ImageButton代替,然后设置它点击时的效果,比如发光啥的
又比如说CheckBox,我们可以自由设置它被选中和未选中时的样式。圆形、方形、三角形 随意了。。
然后是EditText,同样道理。

下面是方法:

首先新建一个xml文件,如下所示:(这是个处理不同动作下,组件需要转换的背景文件)

1、ImageButton背景的切换方法

-----------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/imageview_normal" /> <!--未点击 的时候ImageView的背景图-->

<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/imageview_pressed" /> <!--点击 的时候ImageView的背景图-->

<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/imageview_pressed" /> <!--点击 的时候ImageView的背景图 -->


<item android:drawable="@drawable/imageview_normal" /> <!-- 未点击 的时候ImageView的背景图 -->
</selector>
-----------------------------------------------

使用方法,xml相对应的ImageButton设置属性 android:background="@drawable/上面文件的文件名" ,就可以了


2、CheckBox背景的切换方法

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

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

<item android:state_checked="true"
android:drawable="@drawable/checkbox_selected" /><!--选中时效果图-->

<item android:state_checked="false"
android:drawable="@drawable/checkbox_unselected" /><!--未选中时效果图-->

</selector>
-----------------------------------------------

使用方法,xml相对应的ImageButton设置属性 android:button="@drawable/上面文件的文件名" ,就可以了

3、EditText背景切换的方法

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

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

<item android:state_focused="true"
android:drawable="@drawable/edittext_selected" /><!--选中时效果图-->

<item android:state_focused="false"
android:drawable="@drawable/edittext_unselected" /><!--未选中时效果图-->

</selector>
-----------------------------------------------

使用方法,xml相对应的ImageButton设置属性 android:background="@drawable/上面文件的文件名" ,就可以了
注:有时编辑框中的文字会在背景图的外面,比如文字在图片所包围的区域左边,这个时候 可以使用 诸如 android:pandingLefg="10dip"的方式,跳转文本的位置


二、设置style
以EditText为例,
首先在res/values目录下新建一个styles.xml的文件,

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

<resources>

<style name="my_edittext_style" parent="@android:style/Widget.EditText">

<item name="android:background">@drawable/edittext_selector</item>

</style>

</resources>
---------------------------------------------

注解:my_edittext_style是这个样式的名称 , parent="@android:style/Widget.EditText" 是这个样式所适用的组件名

<item name="android:background">@drawable/edittext_selector</item> 说明这个样式 是一个背景样式,引用的drawable资源是edittext_selector,恩。这个东西就是我们上面所写的xml文件。。


接着是使用方法:

------------------------------------------------

<EditText

style="@style/my_edittext_style"

android:text="My EditText"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

</EditText>

--------------------------------------------

效果图:

正常情况。

操作后,



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值