2013-04-06 74 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