我采用了与此处所述的方法不同的方法,而且效果非常好,所以我想分享一下。
我正在使用样式来创建一个自定义按钮,左侧是图像,中间是右侧的文本。只需遵循以下 4 个“简单步骤”:
我。使用至少 3 个不同的 PNG 文件和您在以下位置拥有的工具创建 9 个补丁:/YOUR_OWN_PATH/android-sdk-mac_x86/tools/./draw9patch。在此之后,您应该:
button_normal.9.png、button_focused.9.png 和 button_pressed.9.png
然后下载或创建一个 24x24 PNG 图标。
ic_your_icon.png
将所有内容保存在 Android 项目的 drawable/ 文件夹中。
二。在 drawable/ 文件夹下的项目中创建一个名为 button_selector.xml 的 XML 文件。状态应该是这样的:
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_focused" />
<item android:drawable="@drawable/button_normal" />
三。转到 values/ 文件夹并打开或创建 styles.xml 文件并创建以下 XML 代码:
<style name="ButtonNormalText" parent="@android:style/Widget.Button">
<item name="android:textColor" >@color/black</item>
<item name="android:textSize" >12dip</item>
<item name="android:textStyle" >bold</item>
<item name="android:height" >44dip</item>
<item name="android:background" >@drawable/button_selector</item>
<item name="android:focusable" >true</item>
<item name="android:clickable" >true</item>
</style>
<style name="ButtonNormalTextWithIcon" parent="ButtonNormalText">
<item name="android:drawableLeft" >@drawable/ic_your_icon</item>
</style>
ButtonNormalTextWithIcon 是“子样式”,因为它扩展了 ButtonNormalText(“父样式”)。
请注意,将 ButtonNormalTextWithIcon 样式中的 drawableLeft 更改为 drawableRight、drawableTop 或 drawableBottom,您可以将图标放置在相对于文本的其他位置。
四。转到您拥有 UI 的 XML 的 layout/ 文件夹,然后转到要应用样式的 Button 并使其看起来像这样:
<Button android:id="@+id/buttonSubmit"
android:text="@string/button_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ButtonNormalTextWithIcon" ></Button>
还有……瞧!你的按钮在左侧有一张图片。
对我来说,这是更好的方法!因为这样做,您可以将按钮的文本大小与您要显示的图标分开管理,并为具有不同图标的多个按钮使用相同的背景可绘制对象,遵守 Android UI 指南使用样式。
您还可以为您的应用创建一个主题并为其添加“父样式”,以便所有按钮看起来都一样,并仅在您需要的地方应用带有图标的“子样式”。