0

我想在按钮中添加图片和文本,如下所示。 我的自定义按钮

如果我把它作为背景,那么它会根据不同手机的屏幕尺寸而恶化。所以我想自定义绘制自定义布局,其中信息按钮的图像将保持在相同的像素中,而信息字母将被单独绘制。这样我就可以在没有任何图像失真的情况下获得准确的外观。

4

4 回答 4

2

您可以指定背景图像,“!” 图标和文本分别像这样:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:drawableLeft="@drawable/icon"
android:text="info" />
于 2012-06-01T15:08:52.743 回答
1

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

检查这个9-patch。这将使您可以根据需要创建带有圆角的背景,而不会倾斜它们。

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

如果您想要更好的用户体验,请查看内容以定义按钮状态。您仍然需要执行所有这些操作,然后为按钮背景定义状态并将其用作背景。

于 2012-06-01T15:13:32.830 回答
1

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

这些是您可以使用的三个 9-patch 可绘制对象:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

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" />
于 2012-06-01T15:15:26.657 回答
0

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

android:background="backgroundImage"
android:drawableLeft="info icon"
android:text="text"
于 2012-06-01T15:08:50.643 回答