Изменить размер ImageButton?
У меня есть ImageButton, я использую включенное изображение @android: drawable/ic_menu_more. Но он слишком велик. Какой лучший способ изменить размер, чтобы он лучше вписывался в мою форму? Кроме того, можно ли его вращать внутри xml? (только один раз, не основанный на состоянии)
Ответы
Ответ 1
попробуйте установить android:background
вместо android:src
для установки изображения на кнопке. Это может помочь в вашем случае, так как оно растянет изображение до размера вашей кнопки. Кроме того, вам нужно будет указать фиксированные размеры для кнопок (используйте dip
вместо px
). Пример:
<ImageButton
android:background="@drawable/ic_menu_more"
android:layout_width="50dip"
android:layout_height="50dip" />
Ответ 2
Из решения steven-byle (fooobar.com/questions/62827/...) он говорит:
"... Используйте андроид: scaleType =" fitCenter ", чтобы иметь Android-масштаб изображений, android: adjustViewBounds =" true ", чтобы они могли корректировать их границы из-за масштабирования..."
Это работает для меня
Ответ 3
Вы можете использовать NinePatchDrawable... Растровое изображение с изменяемым размером, с определяемыми вами растяжимыми областями.
http://developer.android.com/reference/android/graphics/drawable/NinePatchDrawable.html
Ответ 4
Как я решил эту проблему, нужно создать растровое изображение из рассматриваемого ресурса чертежа, а затем преобразовать его в масштабированное растровое изображение с требуемым размером. Я также устанавливаю фон прозрачным, чтобы отображать только изображение.
int height = 300;
int width = 500
Bitmap bmp;
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.myresourcename);
bmp = Bitmap.createScaledBitmap(bmp, width, height, true);
ImageButton imageButton = new ImageButton(this.getActivity());
imageButton.setImageBitmap(bmp);
imageButton.setBackgroundColor(Color.TRANSPARENT);
Затем добавьте его в макет.