我有以下TextView
:
<TextView
android:drawableLeft="@drawable/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Updating Rates" />
结果如下:
如何按比例加载圆形可绘制约束,使其高度与文本高度相匹配?
另外,如果可能的话,我想在文本和图像之间添加一些间距。
答案 0 :(得分:22)
要使loading
更小,只需缩小图像。
或者使用RelativeLayout
并将加载放入ImageView
并进行缩放。
或者您可以使用android:drawablePadding
(或setCompoundDrawablePadding()
)在drawable和文本之间添加填充:
android:drawablePadding="3dp"
答案 1 :(得分: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);
答案 2 :(得分:1)
int bound = (int) (drawable.getIntrinsicWidth() * 0.5);
drawable.setBounds(0, 0, bound, bound);
b.setCompoundDrawables(drawable, null, null, null);
答案 3 :(得分:0)
更好的解决方案是在可绘制文件夹中创建XML并将图像添加到此XML,并将scaleType维护为“fitXY”。现在,您可以将此XML作为drawableLeft。
答案 4 :(得分:-1)
您只需要声明两个单独的视图imageview和textview,并相应地设置它们