ImageButton 和ImageWell 样式的浅析

一、ImageButton 继承自ImageView ,而非Button
系统定义的样式如下:
<style name="Widget.ImageButton" parent="@style/Widget">
<item name="background">@drawable/btn_default</item>
<item name="focusable">true</item>
<item name="clickable">true</item>
<item name="scaleType">center</item>
</style>

ImageButton可以通过设置android:src属性,这个src是一个selector.xml
selector里面定义了各个状态的属性值

二、ImageWell相当于一个图片框
系统定义样式如下:
<style name="Widget.ImageWell">
<item name="android:background">@android:drawable/panel_picture_frame_background</item>
</style>

而panel_picture_frame_background(base\core\res\res\drawable下可见)又是一个xml配置文件,里面定义了各个状态对应的图片,Android会根据不同的状态自动的调用定义的图片
而这些图片全是.9.png(base\core\res\res\drawable-hdpi\*.9.png)格式的,表示这张图片为了在缩放的时候不至于变形而处理过;
9patch是一种特殊的文件格式,它以”.9.png”为扩展名,它的上下左右各有一象素留边,用以标识图片以何种方式拉伸,一般做图时留边中以黑色标识其拉伸区域,此为显式的9patch信息,用以方便做图者编辑(android提供工具draw9patch来编辑9patch图),程序打包时aapt工具把该图留边去掉,并将信息其写入png文件内部,使之变为隐显9patch信息
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:drawable="@drawable/panel_picture_frame_bg_focus_blue" />
<item android:state_pressed="true" android:drawable="@drawable/panel_picture_frame_bg_pressed_blue" />
<item android:drawable="@drawable/panel_picture_frame_bg_normal" />
</selector>
我们完全可以根据自己的需要定制不同的样式,在res/values/styles.xml定义我们需要的样式,引用的时候只要在我们的控件中添加 style="@style/xxx";(引用系统的:style="@android:style/xxx")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值