Android shape,自己简单的总结。和学习。

 



solid:实心,就是填充的意思

       android:color指定填充的颜色。

       gradient:渐变

       android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。

       另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

       stroke:描边

       android:width="2dp" 描边的宽度,android:color 描边的颜色。

       我们还可以把描边弄成虚线的形式,设置方式为:

       android:dashWidth="5dp" 
       android:dashGap="3dp"

       其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

       corners:圆角

       android:radius为角的弧度,值越大角越圆。

       我们还可以把四个角设定成不同的角度,方法为:

android:topLeftRadius="5dp"    左上角

android:bottomRightRadius="5dp"    左下角

android:topRightRadius="0dp"    右上角

android:bottomLeftRadius="0dp"    右下角

我的在一个Activity里面有两个Fragment. 然后在顶部一个导航栏,类似于,那个什么仿美丽说顶部导航栏的东东,他的比较复杂,我的是用两个RadioButton,并列在一起,哪个RadioButtoncheck等ture的时候,就有按下效果,和Activity中对应的Fragment   show。 hide另一个Fragment,达到顶部导航的效果。

扯远了,现在先说下自己这边用到的shape,

先贴个单个作为背景的xml。 起码不用画图,而且适配也挺好的,大家用到的话,看看属性描述,就知道怎么用了。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
                <!-- 填充颜色 白色内部 -->
            <solid android:color="#FFFFFF" />
            
            <!-- 描边 蓝色蕾丝边 =。= 你相信吗?-->
   				 <stroke
       				 android:width="1dp"
       				 android:color="#00B8EE"/>
            <!-- 圆角 -->
            <corners 
                android:topLeftRadius="5dp"
                android:bottomRightRadius="5dp"
				android:topRightRadius="5dip"
				android:bottomLeftRadius="5dip"
                />
			<!--  内部的间距 -->
             <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
    
</shape>

了。接下来是正文,自己刚刚用到的, radioButton的check背景。

android:background="@drawable/left_radiobtn_selector"
左右两边的selector.

left_radiobtn_selector (名字自己顺便定义)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape >
             
            <!-- 填充颜色 -->
            <solid android:color="#00B8EE" />
            
            <!-- 描边 -->
   				 <stroke
       				 android:width="1dp"
       				 android:color="#00B8EE"/>
            <!-- 圆角 -->
            <corners 
                android:topLeftRadius="5dp"
                android:bottomRightRadius="5dp"
                />
			<!--  内部的间距 -->
             <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            
        </shape>
        
        </item>
    <item android:state_checked="false">
        
         <shape>
            填充颜色
            <solid android:color="#FFFFFF" />
            
            描边
   			 <stroke
       				 android:width="1dp"
       				 android:color="#00B8EE"/>
            圆角
            <corners 
                 android:topLeftRadius="5dp"
                android:bottomRightRadius="5dp"
                />
            
             内部的间距
             <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            
        </shape>
        
        
        
    </item>

</selector>

右边的selector~右边的按钮点击效果选中和未选中的效果。

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

    <item android:state_checked="true">
        <shape>
            <!-- 填充颜色 -->
            <solid android:color="#00B8EE" />
            
            <!-- 描边 -->
   				 <stroke
       				 android:width="1dp"
       				 android:color="#00B8EE"/>
            <!-- 圆角 -->
            <corners 
                android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                />
			<!--  内部的间距 -->
             <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            
        </shape>
        
        </item>
    <item android:state_checked="false">
        
         <shape>
            <!-- 填充颜色 -->
            <solid android:color="#FFFFFF" />
            
            <!-- 描边 -->
   			 <stroke
       				 android:width="1dp"
       				 android:color="#00B8EE"/>
            <!-- 圆角 -->
            <corners 
                android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                />
            
            <!--  内部的间距 -->
             <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            
        </shape>
        
        
        
    </item>

</selector>

类似这个, 布局就不贴了。

选中为蓝色,如果一般文字也是跟着变化的,那么就需要另外写一个selector 添加到文字的背景中。

对了要记得一个radiobutton 要设置check为true.

android:checked="true"

如有错误,请指正,谢谢。。。 

猜你喜欢

转载自blog.csdn.net/chungehenyy/article/details/44810783
今日推荐