通过使用层叠样式 layer-list 可以将多张图像层叠在一起 形成一张新的图像.
在第一次接触, 是为了解决一个LinearLayout 中包含一个Button ,当点击该LinearLayout和Button 多要改变LinearLayout的背景色. 由于Button无法获取焦点改变事件(OnFocusChangeListener), 而设置Button点击事件我们也只能扑捉按钮的一瞬间, 所以我们还的扑捉手势动作(GestureDetector) . 而且这些多要代码去控制,
听说 ImageButton能解决Button的这一弱点哦..
下面是效果图
接下来发的是drawable xml图像文件
1. 默认的图片布局 : layer_main_button_life_n.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/login_btn_normal" />
<item android:drawable="@drawable/main_icon_life"
android:left="20dip"
android:right="150.0dip"
android:top="8dip"
android:bottom="8dip"/>
</layer-list>
2. 按下 或者有焦点的图像布局:layer_main_button_life_p.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/login_btn_focus" />
<item android:drawable="@drawable/main_icon_life"
android:left="20dip"
android:right="150.0dip"
android:top="8dip"
android:bottom="8dip"/>
</layer-list>
3. 为新的图像创建一个选择器布局 :selector_main_button_life.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/layer_main_button_life_p" android:state_pressed="true"/>
<item android:drawable="@drawable/layer_main_button_life_p" android:state_selected="true"/>
<item android:drawable="@drawable/layer_main_button_life_n"/>
</selector>
4. 最后在布局文件中 main.xml中的Button直接引用该选择器就OK了
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="@drawable/selector_main_button_life"
android:paddingLeft="100dip"
android:text=" 生 活 资 讯 "
android:textSize="20sp"/>
</RelativeLayout>
注: layer-list 对应的Java类为LayerDrawable ,大家也可能使用该类在类中创建自己的图像
- 大小: 4.2 KB
- 大小: 4.1 KB
分享到:
相关推荐
使用layer-list可以将多个drawable按照顺序层叠在一起显示,默认情况下,所有的item中的drawable都会自动根据它附上view的大小而进行缩放, layer-list中的item是按照顺序从下往上叠加的,即先定义的item在下面,...
层叠样式表单-CSS 层叠样式表单-CSS 层叠样式表单-CSS 层叠样式表单-CSS 层叠样式表单-CSS 层叠样式表单-CSS
本文的思路是多个drawable叠在一起,但是不额外使用View,通过layer-list可以将多个item按照顺序层叠在一起显示。首先来看效果图: 第一个和第二个控件是用来展示layer-list实现阴影效果的基本款,而第三个控件是...
效果图 功能 自定义卡片的堆叠效果 自定义卡片移除动画 支持加载更多 使用方式 gradle dependency ...父布局使用clipChildren="false", 使之能全屏拖动 ... android:clipChildren="false"> android:
各种方向的ViewPager层叠卡片
CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式表中文手册CSS层叠样式...
MMC载波层叠,PD-SPWM调制,N=6
MMC载波层叠,POD-SPWM调制,N=6
较多的PCB工程师,他们经常画电脑主板,对Allegro等优秀的工具非常的熟练,但是,非常可惜的是,他们居然很少知道如何进行阻抗控制,如何使用工具进行信号完整性分析.如何使用IBIS模型我觉得真正的PCB高手应该还是信号完整...
本文实例为大家分享了Android实现3D层叠式卡片图片展示的具体代码,供大家参考,具体内容如下 先看效果 好了效果看了,感兴趣的往下看哦! 整体实现思路 1、重写RelativeLayout 实现 锁定宽高比例的 RelativeLayout...
-------------------- 多媒体技术-----层叠样式表CSS
主要介绍了深入浅出学习层叠样式表--css,本文讲解了样式表的三种引入方式,同时讲解了link和@import的区别,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。
CSS_5日精通CSS层叠样式表.chm CSS_精通CSS滤镜.chm CSS样式表.CHM css样式表滤镜.chm
单元2-1 层叠样式表种类;;;;;;;;;;; <meta charset="utf-8" /> 第一个网页 body{ background-image:url(img/bg.gif); } h1{ color: red; } 网页设计是一门很有趣的课 ;;;;;;;第一:样式表的语法;选择器{...
OverlayCardViewPager 层叠卡片效果的ViewPage
Android应用源码开发Demo,主要用于毕业设计学习。
三角载波与正弦波输出调制波,12个子模块。
自定义Toast,防止层叠显示问题,和自定义Toast样式 博客地址:https://blog.csdn.net/qq569699973
css层叠样式表手册_css样式表_css层叠样式表_css样式表下载css层叠样式表手册_css样式表_css层叠样式表_css样式表下载css层叠样式表手册_css样式表_css层叠样式表_css样式表下载
分享的是来自麦子学院网课,关于CSS层叠样式表的知识结构图,用的思维导图工具是xmind,一款免费的思维导图工具