自定义按钮与图片和文字?

时间:2012-06-01 15:03:31

标签: java android eclipse

我想在按钮中添加图片和文字,如下所示。 My custom button

如果我将此作为背景,那么它将根据不同手机的屏幕尺寸而恶化。所以我想自定义绘制自定义布局,其中信息按钮的图像将保留在同一像素中,并且信息字母将被绘制为单独的。这样我就可以获得精确的外观而不会出现任何图像失真。

4 个答案:

答案 0 :(得分:2)

您可以指定背景图片'!'图标和文字分开如下:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:drawableLeft="@drawable/icon"
android:text="info" />

答案 1 :(得分:1)

使用9补丁作为背景,使用普通按钮,使用左侧可绘制的图像。这是你的最佳方式。

检查this是否有9补丁。这样您就可以根据需要创建带圆角的背景而不会使它们偏斜。

所以最后你会得到一个普通的按钮,其背景是9-patch和你设置图标的drawableLeft。

检查this以确定按钮状态,以防您想要更好的用户体验。您仍然需要执行所有这些操作,然后为按钮背景定义状态并将其用作背景。

答案 2 :(得分:1)

你可以在你的res / drawable文件夹中使用这三个drawable作为你的背景名称文件backround.xml这个文件将处理你的butoon backround在不同状态下按下,聚焦和正常:

这些是你可以使用的三个9-patch drawable:

enter image description here

enter image description here

enter image description here

backround.xml是:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item 
        android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />
    <item 
        android:state_focused="true" 
        android:state_enabled="true"
        android:drawable="@drawable/btn_orange" />

    <item 
        android:state_enabled="true"
        android:drawable="@drawable/btn_black" />
    <item 
        android:state_enabled="false"
        android:drawable="@drawable/btn_red" />
</selector>

您的xml按钮将如下所示:

  <Button
      android:id="@+id/my_btn"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:drawableLeft="@drawable/myIcon"
      android:drawablePadding="5dp"
      android:paddingLeft="10dp"
      android:text="info"
      android:background="@drawable/background" />

答案 3 :(得分:0)

您需要在Button小部件中排列3件事:background image, info icon and text。对于这些使用这些:

android:background="backgroundImage"
android:drawableLeft="info icon"
android:text="text"