android中的 shape,selector layer-list

shape 可以实现一些你想要的效果, 比如有时候 你在一个  button 获得焦点,按下 ,时要改变图片 以让客户有更好的体验感觉。

shape 就可以改变这些  控件的一些 属性, 可以说 让你在一个小项目中实现 获得焦点,按下 统一的效果和 风格吧, 而且这样超级方便呢。

在 你的 drawable文件夹下面    建立1个xml文件,比如    selector.xml 


shape里面有这么几个属性,其实很简单:

    1.Shape
简介
作用:XML中定义的几何形状
位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:Android:background="@drawable/文件的名称"
属性:
<shape>  Android:shape=["rectangle" | "oval" | "line" | "ring"]
其中rectagle矩形,oval椭圆,line水平直线,ring环形


    2.Selector
简介
根据不同的选定状态来定义不同的现实效果
分为四大属性:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
android:state_window_focused默认时的背景图片
引用位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:Android:background="@drawable/文件的名称"

<shape>   
            <solid android:color=""/>    实心属性: 什么颜色
            <gradient
                android:startColor=""    渐变属性: 1.开始颜色         
                android:endColor=""                2.结束颜色   
                android:angle="90" />                    3.angle: 渐变的角度 必须为45度的倍数
         //渐变平常默认是 线性渐变    android:type="linear",
        // 想要变成 径向渐变    android:type="radial",径向渐变需要指定半径android:gradientRadius="30"。

            <stroke                              描边属性: 
                android:width="3dp"                        1.描边的宽度
                android:dashWidth="6dp"                    2.表示横线的宽度
                android:dashGap="3dp"                      3.表示隔开的距离
                android:color="" />                        4.描边的颜色
        
             <corners                             圆角属性:
                android:topRightRadius="20dp"                右上角
                android:bottomLeftRadius="20dp"              右下角
                android:topLeftRadius="1dp"                  左上角
                android:bottomRightRadius="0dp"              左下角
                  />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
  </shape>


<selector
    <item android:state_pressed="true" >
        <shape>
        </shape>
    </item>
    <item android:state_focused="true" >
        <shape>
        </shape>
    </item>

</selector>

layer-list  就是一种叠加的效果,你可以将图片 或者各种效果叠加起来

<?xml version="1.0" encoding="UTF-8"?>  
 <layer-list  
   xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!--图片1-->
     <item android:id="@+id/user_faceback_drawable"
           android:drawable="@drawable/faceback" />  
    <!--图片2-->
     <item android:id="@+id/user_face_drawable" 
           android:drawable=""   
           android:left="0dip" 
           android:top="0dip" 
           android:right="30dip" 
           android:bottom="30dip" />  
 </layer-list> 
<!--2个图片的叠加-->




猜你喜欢

转载自blog.csdn.net/kongbaidepao/article/details/10044059