使用style.xml自定义button效果

使用style.xml自定义button效果

声明:转载请注明原作文章出处

 

今天在处理按钮自定义效果时,希望只用一组效果图片可以应用在所用的按钮上。一开始使用的是ImageButton,而后发现ImageButton上不能添加文字,虽然网上找到说什么的ImageButton可以直接继承TextView,但却没用给出方法。因为懒得重写一个自己的Button类,苦苦寻找其他方法,终于发现可以使用style.xml资源,而且功能还相当强大,这里只使用的很小一部分功能。

 

首先给出ImageButton使用android:src设置特定效果的例子:

 

布局文件中的ImageButton部分

<ImageButton

android:id="@+id/showdiy_btshow" //自己定义的id

android:text="@string/showdiy_btnshow" //用到的text,写在strings.xml资源文件中

android:src="@drawable/imagebutton_handler" //用到的xml资源文件

android:layout_width="80px" 

android:layout_height="wrap_content"

/>

 

在res/drawable目录下的 imagebutton_handler.xml 文件名可以自己定义:

 

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

android:drawable="@drawable/btn_normal" /> <item android:state_pressed="true" android:drawable="@drawable/btn_selected" /> <item android:state_focused="true" android:drawable="@drawable/btnselect" /> </selector>

 

笔者的理解是这事一个资源选择器,根据不同的条件,选择不同的资源。使用这个选择器可以在按钮发生 失去焦点、获得焦点、按下 这3个事件时使用3张不同的图片来组成你想要的效果。

android:darwable= 之后的都是在res/darwable中的图片资源

 

之后是使用style.xml资源使得Button也能达到我们想要的效果:

 

Button的好处就是可以使用text,这样只需要3张背景图片,就可以应用到所有你需要的按钮上了

 

布局文件中的Button部分

 

<Button

android:id="@+id/showdiy_btshow" //自己定义的id

android:text="@string/showdiy_btnshow" //用到的text,写在strings.xml资源文件中

style="@style/mybutton_sytle" //使用自定义的style.xml资源文件

android:layout_width="80px" 

android:layout_height="wrap_content"

/>

 

style.xml文件放在/res/values目录下

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="mybutton_sytle">

 

//这里的imagebutton_handler就是上部分用到的imagebutton_handler.xml

<item name="android:background">@drawable/imagebutton_handler</item> </style> </resources>

这样就完成了一组背景图片应用到所有按钮上的效果了。

 

修正:

Button 控件不是用style.xml资源也可以达到同样的效果如下修改:

 

<Button

android:id="@+id/showdiy_btshow" //自己定义的id

android:text="@string/showdiy_btnshow" //用到的text,写在strings.xml资源文件中

android:background="@drawable/imagebutton_handler" //可以直接使用drawable 下的xml资源文件

android:layout_width="80px" 

android:layout_height="wrap_content"

/>

 

 

如有问题 欢迎来信指正,交流 E-mail:chengping.xia@gmail.com

 

 

 

 

 

 

Android 自定义按钮可以通过自定义样式和布局文件来实现。下面是一个简单的步骤: 1. 创建一个新的 XML 布局文件,例如 custom_button.xml。 2. 在布局文件中定义按钮的外观和样式。你可以设置按钮的背景、文字颜色、边框等。 3. 在你的 Activity 或 Fragment 中使用自定义按钮。在布局文件中,使用`<com.example.CustomButton>`作为按钮的标签,其中`com.example`是你自定义按钮类的包名。 4. 在你的自定义按钮类中,继承 `Button` 类,并实现构造方法和一些自定义方法。你可以添加一些特定的行为或属性,如点击事件或动画效果。 5. 在自定义按钮类中,重写 `onDraw` 方法来绘制自定义的外观。你可以使用 `Canvas` 对象来绘制形状、颜色和文本。 6. 将自定义按钮类与布局文件中的按钮关联起来。在布局文件中使用 `app:buttonStyle="@style/CustomButtonStyle"` 来指定按钮的样式。 7. 在你的 styles.xml 文件中定义自定义按钮的样式,例如: ```xml <style name="CustomButtonStyle" parent="Widget.AppCompat.Button"> <item name="android:background">@drawable/custom_button_background</item> <item name="android:textColor">@color/custom_button_text_color</item> <!-- 其他样式属性 --> </style> ``` 8. 创建一个自定义背景资源文件 custom_button_background.xml,用于定义按钮的背景形状和颜色。 9. 运行你的应用程序,查看自定义按钮的效果。 这些是实现 Android 自定义按钮的基本步骤。你可以根据自己的需求和创意来进一步扩展和定制按钮的外观和行为。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值