2017-04-18 101 views

回答

0

經過幾個小時努力終於我能創建使用layer-list這個自定義形狀。

1. /res/drawable/custom_shape_one.xml:

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

    <!-- Rectangle --> 
    <item> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="80dp" /> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 

    <item 
     android:right="80dp"> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="60dp" /> 
      <solid android:color="#F8F7F7" /> 
     </shape> 
    </item> 

    <item 
     android:left="135dp"> 
     <rotate android:fromDegrees="67"> 
      <shape android:shape="rectangle"> 
       <solid android:color="#F8F7F7" /> 
      </shape> 
     </rotate> 
    </item> 

    <!-- Top Border --> 
    <item 
     android:right="61dp" 
     android:bottom="78.8dp"> 
     <shape android:shape="line"> 
      <stroke 
       android:color="#999999" 
       android:width="1dp" /> 
     </shape> 
    </item> 

    <!-- Right-Diagonal Border --> 
    <item 
     android:left="220dp"> 
     <rotate android:fromDegrees="67"> 
      <shape android:shape="line"> 
       <stroke 
        android:color="#999999" 
        android:width="1dp" /> 
      </shape> 
     </rotate> 
    </item> 

</layer-list> 

USE:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/custom_shape_one"/> 

OUTPUT:

enter image description here

2. /res/drawable/custom_shape_two.xml:

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

    <!-- Rectangle --> 
    <item> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="80dp" /> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 

    <item 
     android:left="80dp"> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="60dp" /> 
      <solid android:color="#F8F7F7" /> 
     </shape> 
    </item> 

    <item 
     android:right="135dp"> 
     <rotate android:fromDegrees="293"> 
      <shape android:shape="rectangle"> 
       <solid android:color="#F8F7F7" /> 
      </shape> 
     </rotate> 
    </item> 

    <!-- Top Border --> 
    <item 
     android:left="61dp" 
     android:bottom="78.8dp"> 
     <shape android:shape="line"> 
      <stroke 
       android:color="#999999" 
       android:width="1dp" /> 
     </shape> 
    </item> 

    <!-- Left-Diagonal Border --> 
    <item 
     android:right="220dp"> 
     <rotate android:fromDegrees="293"> 
      <shape android:shape="line"> 
       <stroke 
        android:color="#999999" 
        android:width="1dp" /> 
      </shape> 
     </rotate> 
    </item> 

</layer-list> 

USE:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/custom_shape_two"/> 

OUTPUT:

enter image description here

3. /res/drawable/custom_shape.xml:

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

    <item> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="60dp" /> 
      <solid android:color="@android:color/transparent" /> 
     </shape> 
    </item> 

    <item 
     android:right="90dp"> 
     <rotate android:fromDegrees="67"> 
      <shape android:shape="rectangle"> 
       <solid android:color="#F8F7F7" /> 
      </shape> 
     </rotate> 
    </item> 
    <item 
     android:left="90dp"> 
     <rotate android:fromDegrees="293"> 
      <shape android:shape="rectangle"> 
       <solid android:color="#F8F7F7" /> 
      </shape> 
     </rotate> 
    </item> 

    <item 
     android:right="200dp"> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="60dp" /> 
      <solid android:color="#F8F7F7" /> 
     </shape> 
    </item> 

    <item 
     android:left="200dp"> 
     <shape android:shape="rectangle"> 
      <size 
       android:width="300dp" 
       android:height="60dp" /> 
      <solid android:color="#F8F7F7" /> 
     </shape> 
    </item> 

    <!-- Top-Right Line --> 
    <item 
     android:right="180dp" 
     android:bottom="58.5dp"> 
     <shape android:shape="line"> 
      <stroke 
       android:color="#999999" 
       android:width="1dp" /> 
     </shape> 
    </item> 

    <!-- Top-Right Line --> 
    <item 
     android:left="180dp" 
     android:bottom="58.5dp"> 
     <shape android:shape="line"> 
      <stroke 
       android:color="#999999" 
       android:width="1dp" /> 
     </shape> 
    </item> 

    <!-- Left-Diagonal Line --> 
    <item 
     android:right="26dp"> 
     <rotate android:fromDegrees="67"> 
      <shape android:shape="line"> 
       <stroke 
        android:color="#999999" 
        android:width="1dp" /> 
      </shape> 
     </rotate> 
    </item> 

    <!-- Right-Diagonal Line --> 
    <item 
     android:left="26dp"> 
     <rotate android:fromDegrees="293"> 
      <shape android:shape="line"> 
       <stroke 
        android:color="#999999" 
        android:width="1dp" /> 
      </shape> 
     </rotate> 
    </item> 

</layer-list> 

用途:

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/custom_shape"/> 

OUTPUT:

enter image description here

希望這將有助於〜

+0

偉大的工作,但我需要他們兩個分別可以請你幫我這樣做嗎? –

+0

好吧,我會盡快做到這一點。 – FAT