我想在按钮中添加图片和文本,如下所示。
如果我把它作为背景,那么它会根据不同手机的屏幕尺寸而恶化。所以我想自定义绘制自定义布局,其中信息按钮的图像将保持在相同的像素中,而信息字母将被单独绘制。这样我就可以在没有任何图像失真的情况下获得准确的外观。
您可以指定背景图像,“!” 图标和文本分别像这样:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:drawableLeft="@drawable/icon"
android:text="info" />
你可以使用这三个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" />
您需要在 Button 小部件中安排 3 件事background image, info icon and text
:对于这些使用这些:
android:background="backgroundImage"
android:drawableLeft="info icon"
android:text="text"