android shape的使用詳解以及常用效果(漸變色、分割線、邊框、半透明陰影效果等)


shape使用、漸變色、分割線、邊框、半透明、半透明陰影效果。

首先簡單了解一下shape中常見的屬性。(詳細介紹參看 api文檔

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape=["rectangle" | "oval" | "line" | "ring"] >   --- 默認為rectangle
    <corners  -- shape=“rectangle”時使用, 
        android:radius="integer"  -- 半徑,會被下邊的屬性覆蓋,默認為1dp,
        android:topLeftRadius="integer" 
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
    <gradient  -- 漸變
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
    <padding
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />
    <size    -- 指定大小,一般用在imageview配合scaleType屬性使用。大小一般會適配滴
        android:width="integer"
        android:height="integer" />
    <solid    -- 填充顏色,可是是十六進制顏色。(比如想設置半透明效果,直接使用十六就只就OK)
        android:color="color" />
    <stroke    -- 指定邊框,border,dashWidth和dashGap有一個為0dp則為實線
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"    -- 虛線寬度
        android:dashGap="integer" />    -- 虛線間隔寬度
</shape>
注意:
<corners>
1、android:radius,半徑,會被下邊的單個角度半徑屬性覆蓋,默認為1dp,
2、在使用時,如果單獨設置四個角度,又大小不一致時,eclipse的graphics preview會報錯。但是直接真機運行即可。(比如實線上邊直角,下邊屈角的效果)
 
<size>
Note: The shape scales to the size of the container View proportionate to the dimensions defined here, by default. When you use the shape in an  ImageView, you can restrict scaling by setting the  android:scaleType to  "center"

 
舉個栗子:

1、漸變色

  res/drawable/gradient_box.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="45"/>
    <padding android:left="7dp"
        android:top="7dp"
        android:right="7dp"
        android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

 

如圖:
 
 
2、白色邊框、半透明效果
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="16dp" />
    <!-- 這是半透明,還可以設置全透明,那就是白色邊框的效果了 -->
    <solid android:color="#80065e8d" />
    <stroke
        android:dashGap="0dp"
        android:width="4dp"
        android:color="@android:color/white" />
</shape>
 
如圖:
 
   
 
3、分割線效果:
 
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line" >
    <stroke
        android:width="4dp"
        android:color="@android:color/black" />
</shape>

 

如果:
 
4、單邊屈角效果
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">

    <corners 
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp"
        android:bottomLeftRadius="30dp"
        android:bottomRightRadius="30dp"/>

    <!-- 這是半透明,還可以設置全透明,那就是白色邊框的效果了 -->
    <solid android:color="#ff065e8d" />

    <stroke
        android:dashGap="0dp"
        android:width="4dp"
        android:color="@android:color/white" />

</shape>

 


如圖:
 
另:附上一份顏色進制圖,需要的可以查閱: http://blog.sina.com.cn/s/blog_684a1d160100umuq.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM