2013-04-06 108 views
0

我想創建一個帶有圖像的按鈕,如圖片底部所示https://trianglewiki.org/RGreenway_App/_files/android.jpg/_info/。我正在嘗試使用層列表和形狀可繪製,並能夠創建非常類似的按鈕。我的問題是,我的圖像沒有按比例縮放按鈕。戒指形狀出現在圖像的頂部,但圖像不在裏面。Android:環形內部的圓形圖像

我希望圖像完全在環內。我認爲我提供的參數值有問題。但可能是我沒有按照正確的方式去做。

有人可以檢查我的XML文件,看看有什麼問題或提供任何信息如何做到這一點,以便在按鈕中獲得與上面鏈接相同的效果。由於

custom_button.xml(在res /繪製)

<?xml version="1.0" encoding="utf-8"?> 

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

<item> 
    <shape 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:innerRadius="20dp" 
     android:innerRadiusRatio="1.75" 
     android:shape="ring" 
     android:thicknessRatio="25" 
     android:useLevel="false" 
     > 
     <gradient 
      android:angle="90" 
      android:endColor="#FFFFFF" 
      android:startColor="#FFFFFF" /> 

     <size 
      android:width="50dp" 
      android:height="40dp" /> 

     <solid android:color="#008000" /> 
    </shape> 
</item> 

</layer-list> 

custom_layout(在res /繪製的LinearLayout中的背景)

<?xml version="1.0" encoding="utf-8"?> 
<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<gradient 
    android:angle="90" 
    android:startColor="#FF000000" 
    android:endColor="#FFFFFFFF" 
    android:type= "linear" /> 
<stroke 
    android:width="1dp" 
    android:color="#FF000000" /> 
<padding 
    android:left="5dp" 
    android:right="5dp" 
    /> 
<size 
    android:height="50dp" 
    /> 
<solid 
    android:color="#00FF00" 
    /> 

</shape> 

header.xml(在res /佈局)

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/buttonBar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true" 
android:background="@drawable/custom_layout" 
android:orientation="horizontal" > 

<ImageButton 
    android:id="@+id/home" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_vertical" 
    android:layout_weight="1" 
    android:contentDescription="Button" 
    android:paddingLeft="2dip" 
    android:paddingRight="2dip" 
    android:background="@drawable/custom_button" 
    android:scaleType="fitXY" 
    android:color="#ff0000" 
    /> 

<ImageButton 
    android:id="@+id/map" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_vertical" 
    android:layout_weight="1" 
    android:background="@drawable/custom_button" 
    android:contentDescription="Map" 
    android:paddingLeft="2dip" 
    android:paddingRight="2dip" 
    android:scaleType="fitXY" 
    /> 

<ImageButton 
    android:id="@+id/weather" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_vertical" 
    android:layout_weight="1" 
    android:background="@drawable/custom_button" 
    android:contentDescription="Weather" 
    android:paddingLeft="2dip" 
    android:paddingRight="2dip" 
    android:scaleType="fitXY" 
    /> 

<ImageButton 
    android:id="@+id/citilink" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_vertical" 
    android:layout_weight="1" 
    android:background="@drawable/custom_button" 
    android:contentDescription="CitiLink" 
    android:paddingLeft="2dip" 
    android:paddingRight="2dip" 
    android:scaleType="fitXY" 
    /> 

</LinearLayout> 

回答

1

如果我理解你的問題,你就過於複雜了。請看here獲取答案。這是我過去使用的技巧。

+0

感謝您的回答!我想你是對的!我應該想到更簡單的事情! – user2188951 2013-04-09 20:06:40