Подтвердить что ты не робот

Ограничить drawableLeft и drawableRight height до высоты TextView

У меня есть следующий TextView:

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

И в результате получится следующее:

Как сделать размер загружаемого круга равным пропорционально, чтобы его высота соответствовала высоте текста?

Кроме того, если это возможно, я хотел бы добавить некоторое расстояние между текстом и изображением.

4b9b3361

Ответ 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.