java – 一个按钮的Android背景文本图标

前端之家收集整理的这篇文章主要介绍了java – 一个按钮的Android背景文本图标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想有一个图像设置为背景上的文字和文本左侧的图标.
在iPhone上很容易,但是无法弄清楚如何在 Android上做到这一点,可以调整大小的按钮并保持图标的文字位置和距离.

苹果手机:

Android我有这个:

xml代码是:

<Button
    android:id="@+id/btSettings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/tvWhatever"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"
    android:background="@drawable/bt_general"
    android:drawableTop="@drawable/settings_selected"
    android:text="@string/settings"
    android:textColor="#000000" />

here获取代码.

如果我使用android:drawableLeft,那么图标就会到最左边的部分.

如果我开始玩半硬编码的paddings,比我将有不同的看法diff devives :(手机和桌子)

如果我添加的android:gravity =“left | center_vertical”比它将看起来像这样:

文本是可变的:当用户更改语言时,它将会改变.

如何做到正确?

我不想低估任何人的答案,但请阅读这个问题,不要建议我已经尝试了.还告诉硬编码的修补程序不能正常工作.

这不是一个功课,而是一个商业软件的一部分.

这里是一个建议的代码从答案:

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/bt_general"
        android:padding="20dip" >

        <ImageView
            android:id="@+id/xIcon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dip"
            android:src="@drawable/settings_selected" />

        <TextView
            android:id="@+id/xSettingsTxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="@string/settings"
            android:textColor="#000000" />
    </RelativeLayout>

你觉得如何在Galaxy S4上看起来像android:layout_marginLeft =“10dip”?这是一个预览:

这不是我所问的.由于手机具有HPDI,较小的屏幕和平板电脑具有MDPI和广泛的分辨率,因此“dip”或“dp”或“px”不应该作为距离左上角的距离使用.简单不适用于mdpi和xxhdpi.

Nizam answer非常接近一个很好的解决方案:

解决方法

也许你应该使用RelativeLayout与圆角,而不是将TextView和ImageView放在其中.

猜你在找的Java相关文章