2011-02-26 33 views
14

Tengo un ImageButton, estoy usando la imagen @android: drawable/ic_menu_more incluida. Pero es demasiado grande. ¿Cuál es la mejor manera de cambiar el tamaño para que se adapte mejor a mi forma? Además, ¿se puede rotar dentro del xml? (solo una vez, no basado en estado)¿Cambiar tamaño ImageButton?

Respuesta

31

intentan establecer android:background en lugar de android:src para ajustar la imagen en el botón. Eso podría ayudar en su caso, ya que estirará la imagen al tamaño de su botón. Además, deberá especificar las dimensiones fijas para los botones (use dip en lugar de px). Ejemplo:

<ImageButton 
    android:background="@drawable/ic_menu_more" 
    android:layout_width="50dip" 
    android:layout_height="50dip" /> 
+2

para aquellos que lo hacen programáticamente, usan setbackgrounddrawable o setbackground en lugar de setimageresource –

2

de la solución de Steven-Byle (https://stackoverflow.com/a/15117536/1741997), que dice:

" ... Utilice un androide: ScaleType = "fitCenter" tener Android escala de las imágenes, y el androide: adjustViewBounds = "verdadero" para tenerlos ajustan sus límites debido a la ampliación ..."

funciona para mí

0

la forma en que resolvió este problema es crear un mapa de bits a partir del recurso de dibujo en cuestión y luego transformarla en una mapa de bits escalado con el tamaño deseado. También configuré el fondo transparente para mostrar solo la imagen.

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); 

A continuación, agréguelo a un diseño.

Cuestiones relacionadas