Android菜鸟日记18-button的按钮效果

Android菜鸟日记18
Button的按钮效果与动态设置Margins
一、button的按钮效果
之前做button的按钮效果是
1.继承button然后复写button的方法。
或者
2.用ImageVIew 的visibility 来让2个ImageVIew交替显示来达到按钮效果

昨天玩seekbar时发现了 可以写可以通过xml文件来让变化后的图片也变化。

今天在研究button效果时发现也可以用这个方法:
选择器法……selector

按钮样式
每个按钮的样式默认为系统按钮的背景,不同的设备、不同的平台版本有不同按钮风格。如你不满意默认的按钮样式,想对其定制以符合您应用程序的设计,那么你能用state list drawable替换按钮的背景图片。一个状态列表drawable是一个在XML中定义的drawable资源,根据当前按钮的状态改变其图片。一旦你在XML中定义了一个状态列表drawable,你可以将它应用于你的android:background属性。欲了解更多信息和示例,参见State List Drawable.


<Button android:backgroud=”xml文件地址[选择器]”>

xx.xml 此xml表示button 按下 选择 默认的 图片
<?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/button_pressed" /> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>
这样速度快 而且直接能用 几乎不用些什么代码

二、动态设置Margins
今天做光学的按钮布局是发现的问题
不同机型的布局是不一样的所以要在代码中获取机器信息后才能对按钮的Margins赋值
结果找了半天没找到如何从bt对象中找到设置的方法,后来搜了半天在网上看到一种方法
通过LayoutParams对象来设置Margins
简单的说:
整个方法就是 通过LinearLayout获取LayoutParams对象 然后对此对象设置margins然后再把设置好的LayoutParams对象传给需要设置的button(imageView也是可以)。


步骤
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
新建一个LinearLayout.LayoutParams(宽布局,高布局)
lp.setMargins(width / 2 - temp, height * 1 / 2, 0, 0);
获得此对象LP 然后用LP.setmargins(左,上,右,下)
bt1.setLayoutParams(lp);
然后吧这个布局参数LP对象设置入bt1


2011-9-20
poolo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值