Android按钮的背景、文本和图标

16 浏览
0 Comments

Android按钮的背景、文本和图标

我想在Android上将文本放置在一个背景图片上,并在文本左侧放置一个图标,iPhone实现很容易,但我无法理解如何在Android上做到可调整大小的按钮并保持图标+文本的位置和距离。

iPhone:

\"iPhone\"

在Android上我有以下代码:

\"Android\"

XML代码如下:

源于这里

如果使用android:drawableLeft,那么图标将会位于最左边。

\"enter

如果我开始使用半硬编码的填充,则在不同的设备上会有不同的外观(手机和平板电脑)。

如果我添加android:gravity=\"left|center_vertical\"则会变成这样:

\"enter

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

怎么才能正确地实现呢?

我不想打击任何人的回答,但请阅读问题并不要提出我已经尝试过的方法。硬编码的修复程序也不好用。

这不是作业,而是一款商业软件的一部分。

以下是答案中提供的建议代码:

        
        
    

你认为在Galaxy s4上使用android:layout_marginLeft=\"10dip\"会像什么呢?下面是一个预览:

\"enter

这不是我所要求的。\"dip\" 或 \"dp\" 或 \"px\" 不应该作为距离左边、上边的距离使用,因为手机有 HPDI、较小的屏幕,而平板电脑有 MDPI 和宽屏分辨率。简单的方法在 mdpi 和 xxhdpi 上都行不通。

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

\"enter

admin 更改状态以发布 2023年5月21日
0
0 Comments

试试这个:

    Button button = (Button) findViewById(R.id.button1);
    Spannable buttonLabel = new SpannableString(" Settings");
    buttonLabel.setSpan(new ImageSpan(getApplicationContext(), R.drawable.settings_selected,      
        ImageSpan.ALIGN_BOTTOM), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    button.setText(buttonLabel);

0
0 Comments

或许你应该使用带有圆角的RelativeLayout,然后在里面放置TextView和ImageView。

0