Android 使用shape来优化界面效果

来源:互联网 发布:淘宝补发是什么意思 编辑:程序博客网 时间:2024/05/16 17:16

前些天去参加了一个公开课,说到了我们很多程序对美工比较不在行,所以需要与UI工程师合作,但是有时候UI工程师忙其他的什么,我们既不会PS也不会AI。于是乎在android中我们可以通过shape来定制我们需要的图形效果等。

   下午研究了下shape,众所周知shape是形状的意思。网络上的例子太多看的真让人眼花缭乱,自己总结了下,以如何使用shape来做圆角按钮的背景来说明shape的具体使用吧。

  看下效果图

  具体实现代码:

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?xmlversion="1.0"encoding="utf-8"?> 
<shapexmlns:android="http://schemas.android.com/apk/res/android"
     <!-- 填充 -->
    <solid
        android:color="#B2B2B2"
        /> 
        
    <!-- 大小 -->
    <size
        android:width="200dp"
        android:height="50dp"
        />  
     
     <!-- 渐变色 -->
    <gradient
        android:startColor="#DBDCDD"
        android:endColor="#B8B9BB"
        android:centerColor="#ADADAF"
        android:angle="270" 
        /> 
      
         
    <!-- 描边 -->
    <stroke
        android:width="2dp"
        android:color="#3D4148" 
        />  
             
    <!-- 圆角 -->
    <corners 
       android:radius="5dp" 
        /> 
      
    <padding
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp"
        /> 
     
</shape
     
<!--  
     
1、  solid  
     描述:内部填充 
      属性     android:color 填充颜色 
     
     
2、size  
     描述:size: 大小 
     属性: 
     android:width   表示形状的宽度 
     android:height 表示形状的高度 
     
3、gradient 
          
      描述: 渐变色 
        
       属性: 
       android:startColor  起始颜色 
       android:endColor    结束颜色 
       android:angle       渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍) 
       android:type       渐变类型(取值:linear、radial、sweep) 
                            linear  线性渐变,这是默认设置 
                            radial  放射性渐变,以开始色为中心。 
                            sweep   扫描线式的渐变。 
       android:centerColor  渐变中间颜色,即开始颜色与结束颜色之间的颜色 
       android:useLevel   如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色 
       android:gradientRadius  渐变色半径.当 android:type="radial" 时才使用。单独使用 android:type="radial"会报错。 
       android:centerX    渐变中心X点坐标的相对位置 
       android:centerY   渐变中心Y点坐标的相对位置 
4、stroke 
     
    描述: stroke:描边  相当于html中的盒子模型的border 
             
   属性: 
        android:width 描边的宽度 
        android:color 描边的颜色 
        android:dashWidth 表示描边的样式是虚线的宽度, 
                                                             值为0时,表示为实线。值大于0则为虚线。 
        android:dashGap  表示描边为虚线时,虚线之间的间隔 即“ - - - - ” 
             
 5、corners 
      
         描述: corners: 圆角 
          
        属性: 
        android:radius  半径 
        android:topLeftRadius  左上角半径 
        android:topRightRadius  右上角半径 
        注意一下两个属性比较不同: 
        android:bottomLeftRadius 右下角半径 
        android:bottomRightRadius 左下角半径 
 6、padding 
               
          描述:内部边距,即内容与边的距离 
               
         属性: 
        android:left  左内边距 
        android:top   上内边距 
        android:right  右内边距 
        android:bottom 下内边距 
0 0
原创粉丝点击