Как я могу масштабировать фон кнопки? - PullRequest
8 голосов
/ 22 ноября 2011

У меня есть следующая кнопка:

<Button
android:id="@+id/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/back_no_save"
android:text="OK" />

Его внешний вид:

enter image description here

Как я могу уменьшить мой чертеж и показать маленькую стрелку?

Ответы [ 5 ]

9 голосов
/ 22 ноября 2011

Вы можете использовать ImageButton и попробовать android:scaleType

ImageView.ScaleType

4 голосов
/ 22 ноября 2011

Я не думаю, что вы можете из XML.Там нет атрибута XML, который может сделать масштабирование для кнопок.Вы можете сделать это программно, однако, следующим образом:

Bitmap originalBitmap= BitmapFactory.decodeResource(getResources(), R.drawable.icon);
Bitmap scaledBitmap=Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, true);
txt.setBackgroundDrawable(new BitmapDrawable(bit));
1 голос
/ 22 ноября 2011

Если вы не хотите иметь дело с Bitmap.createScaledBitmap, тогда мне кажется, что лучший способ сделать это - создать свой собственный компонент. Вы можете расширить RelativeLayout и поместить в него ImageView, например.

1 голос
/ 22 ноября 2011

Вы можете уменьшить фактическую графику, на которую указывает нарисованное.

0 голосов
/ 14 октября 2015

Я знаю, что это старый пост, но я сделал что-то вроде этого:

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:padding="16dp"
    android:id="@+id/XXXXXXXXXXXX"
    android:orientation="horizontal">
    <ImageView
        android:src="@drawable/XXXXXXXXXXXX"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:scaleType="centerInside"
        android:id="@+id/XXXXXXXXXXXXXXXX"/>
    <TextView
        android:id="@+id/XXXXXXXXXXXXXX"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="XXXXXXX"
        android:layout_gravity="center"/>
</LinearLayout>
...