26

我有以下内容TextView

<TextView
    android:drawableLeft="@drawable/loading"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Updating Rates" />

结果是这样的:

如何按比例使加载圆可绘制约束,使其高度与文本的高度匹配?

另外,如果可能的话,我想在文本和图像之间添加一些间距。

4

5 回答 5

22

为了使loading更小,只需使图像更小。

或者使用RelativeLayout并将负载放入ImageView并缩放它。

android:drawablePadding或者,您可以使用(或)在可绘制对象和文本之间添加填充setCompoundDrawablePadding()

android:drawablePadding="3dp"
于 2012-10-07T10:00:59.570 回答
8

我想我找到了解决方案,但有点晚了

Drawable drawable = getResources().getDrawable(R.drawable.s_vit);
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*0.5),(int)(drawable.getIntrinsicHeight()*0.5));
ScaleDrawable sd = new ScaleDrawable(drawable, 0, scaleWidth, scaleHeight);
Button btn = findViewbyId(R.id.yourbtnID);
btn.setCompoundDrawables(sd.getDrawable(), null, null, null); 
于 2015-07-31T19:08:57.947 回答
2

Ravi 的解决方案对我有用,但在某些设备上 drawable 正在消失。通过删除缩放来解决此问题。

    int bound = (int) (drawable.getIntrinsicWidth() * 0.5);
    drawable.setBounds(0, 0, bound, bound);
    b.setCompoundDrawables(drawable, null, null, null);
于 2016-06-29T20:08:50.593 回答
0

更好的解决方案是在可绘制文件夹中创建一个 XML 并将图像添加到此 XML,并将 scaleType 保持为“fitXY”。现在您可以将此 XML 设置为 drawableLeft。

于 2015-05-06T15:47:29.007 回答
-1

您只需要声明两个单独的视图 imageview 和 textview,并相应地设置它们

于 2012-10-07T09:59:58.823 回答