自定义按钮使用图层列表

时间:2012-02-17 09:44:00

标签: android android-layout android-widget

我正在尝试使下面的自定义按钮是代码。我想在我的按钮中实现渐变,角落,阴影以及我想在按钮中心放置小图标说锁定按钮

 <Button
        android:id="@+id/button5"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_alignBaseline="@+id/button4"
        android:layout_alignBottom="@+id/button4"
        android:layout_marginLeft="15dp"
        android:layout_toRightOf="@+id/button1"
        android:shadowColor="#000000"
        android:shadowRadius="50"
        android:background="@drawable/levelselectionbutton"/>

我在一定程度上实现了渐变和角落以及图像,但我希望它在中心,如果我使用重力,那么图像会变得变焦而且看起来也很模糊。我应该怎么做才能在中心实现它whitout在这里获得pixalized是我的layerlist的代码

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item>
  <shape android:shape="rectangle" >

  <corners  android:radius="20dp"  />
  <gradient 
       android:startColor="#7F7F7F"
       android:type="linear" 
       android:endColor="#FFFF"
       android:angle="270"/>

   </shape>  
</item>
<item
    android:drawable="@drawable/ic_hh_lock"
    android:gravity="center"
 />

如何在列表中再创建一个阴影?

1 个答案:

答案 0 :(得分:1)

尝试将图像包装成位图xml,如下所示:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item>
      <shape android:shape="rectangle" >
         <corners  android:radius="20dp"  />
         <gradient 
           android:startColor="#7F7F7F"
           android:type="linear" 
           android:endColor="#FFFF"
           android:angle="270"/>
      </shape>  
   </item>
   <item>
      <bitmap 
          android:src="@drawable/ic_hh_lock"
          android:gravity="center" />
   </item>
</layer-list>