在Android应用中创建这样的按钮的最佳做法?

时间:2014-02-13 11:40:28

标签: android xml android-layout android-view

我刚开始使用Eclipse和ADT创建Android应用程序 我已经在演示应用程序中使用了基本功能,并且想要创建一个看起来像搜索字段的按钮(内置没有搜索功能,我只是希望用户按下它并开始一个新活动)。 / p>

http://www.roowilliams.com/button.png

我的问题是:创建如上所示的按钮的最佳做法是什么(忽略外围的1px深灰色笔触)?

我到目前为止

  1. 在activity_main.xml

    中创建按钮
    <Button
        android:id="@+id/inputSearch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:hint="@string/hint_search"
        android:background="@drawable/input_search"
        style="@style/input_search"
        android:onClick="findProducts" >
    </Button>
    
  2. 创建几个样式

    <style name="input_search" parent="@android:style/TextAppearance.Medium">
        <item name="android:textColor">@color/light_grey</item>
        <item name="android:background">@color/white</item>
    </style>
    
  3. 创建input_search_background.xml,它具有浅灰色笔触,圆角

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <stroke 
            android:width="@dimen/stroke_width" android:color="@color/light_grey" /> 
        <corners 
            android:radius="@dimen/corner_radius" />
        <solid 
            android:color="@color/white" />
    </shape>
    
  4. 为州创建input_search.xml。

    <?xml version="1.0" encoding="utf-8" ?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@drawable/input_search_background"
            android:state_pressed="true" />  
    
        <item android:drawable="@drawable/input_search_background"
            android:state_focused="true" />
    
        <item android:drawable="@drawable/input_search_background" />
    
    </selector>
    
  5. 我不知道如何在右边创建橙色块。我应该定义一个橙色的形状,并使用透明的png作为放大镜,还是png应该是带有放大镜的橙色块?

  6. 您使用哪些工具来创建资产? 我怎么知道创造它们有多大?

    我会感激任何可以提供帮助的智慧或链接。

    谢谢,
    安德鲁

1 个答案:

答案 0 :(得分:2)

您只需使用9 patch即可。

您可以在sdk平台图片中找到类似的

在Windows中(安装路径可能会更改),

C:\Program Files\adt-bundle-windows-x86_64-20130522\sdk\platforms\android-8\data\res\drawable-mdpi

你可以找到:

enter image description here

通过一些(非常少的)工作,您可以制作出符合您需求的完美图像 只需将其添加为Button的背景(我使用TextView,但这是一个品味问题)并享受。

你看,不需要自定义样式,也不需要额外的xml drawable。