Ограничить drawableLeft и drawableRight height до высоты TextView
У меня есть следующий TextView
:
<TextView
android:drawableLeft="@drawable/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Updating Rates" />
И в результате получится следующее:
![]()
Как сделать размер загружаемого круга равным пропорционально, чтобы его высота соответствовала высоте текста?
Кроме того, если это возможно, я хотел бы добавить некоторое расстояние между текстом и изображением.
Ответы
Ответ 1
Чтобы уменьшить размер loading
, просто уменьшите изображение.
Или используйте RelativeLayout
и поместите загрузку в ImageView
и масштабируйте ее.
Или вы можете добавить отступы между чертежами и текстом, используя android:drawablePadding
(или setCompoundDrawablePadding()
):
android:drawablePadding="3dp"
Ответ 2
Я думаю, что нашел решение, но немного опоздал
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);
Ответ 3
Решение Ravi работало для меня, но на некоторых устройствах убираемые файлы исчезали. Исправлено это путем удаления масштабирования.
int bound = (int) (drawable.getIntrinsicWidth() * 0.5);
drawable.setBounds(0, 0, bound, bound);
b.setCompoundDrawables(drawable, null, null, null);
Ответ 4
Вам просто нужно объявить два отдельных вида изображения и текстовое представление и соответственно установить их
Ответ 5
Лучшее решение для создания XML в папке с возможностью рисования и добавления изображения в этот XML и поддержания scaleType как "fitXY". Теперь вы можете сделать этот XML как drawableLeft.