una texto studio poner imagen ejemplo diseƱo con como cambiar botones boton ajustar android image android-linearlayout scale imagebutton

texto - Ajustar imagen en ImageButton en Android



imagebutton android studio (7)

Quiero que cubran el 75% del área del botón.

Use android:padding="20dp" (ajuste el relleno según sea necesario) para controlar cuánto ocupa la imagen del botón.

pero mientras algunas imágenes cubren menos área, algunas son demasiado grandes para caber en el imageButton. ¿Cómo cambiar el tamaño programáticamente y mostrarlos?

Utilice un android:scaleType="fitCenter" para que Android android:scaleType="fitCenter" las imágenes, y android:adjustViewBounds="true" para que ajusten sus límites debido a la escala.

Todos estos atributos se pueden establecer en código en cada ImageView en tiempo de ejecución. Sin embargo, es mucho más fácil de configurar y previsualizar en xml en mi opinión.

Además, no use sp para nada que no sea el tamaño del texto, se escala según la preferencia de tamaño de texto que establezca el usuario, por lo que sus dimensiones sp serán más grandes de lo previsto si el usuario tiene una configuración de texto "grande". Use dp lugar, ya que no está escalado por la preferencia de tamaño de texto del usuario.

Aquí hay un fragmento de cómo debe verse cada botón:

<ImageButton android:id="@+id/button_topleft" android:layout_width="0dp" android:layout_height="match_parent" android:layout_marginBottom="5dp" android:layout_marginLeft="2dp" android:layout_marginRight="5dp" android:layout_marginTop="0dp" android:layout_weight="1" android:adjustViewBounds="true" android:padding="20dp" android:scaleType="fitCenter" />

Tengo 6 ImageButton en mi actividad, establecí imágenes a través de mi código en ellas (sin usar xml).

Quiero que cubran el 75% del área del botón. Pero cuando algunas imágenes cubren menos área, algunas son demasiado grandes para caber en el imageButton. ¿Cómo cambiar el tamaño programáticamente y mostrarlos? Debajo está la captura de pantalla

a continuación está el archivo xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" > <LinearLayout android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1" android:orientation="horizontal"> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_topleft" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_topright" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> </LinearLayout> <LinearLayout android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1" android:orientation="horizontal"> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_repeat" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_next" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> </LinearLayout> <LinearLayout android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1" android:orientation="horizontal"> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_bottomleft" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> <ImageButton android:layout_height="match_parent" android:layout_width="0dp" android:layout_weight="1" android:id="@+id/button_bottomright" android:layout_marginBottom="5sp" android:layout_marginLeft="2sp" android:layout_marginRight="5sp" android:layout_marginTop="0sp" /> </LinearLayout> </LinearLayout>

y un fragmento de myClass.java:

public void addImageButtons() { iB_topleft = (ImageButton) findViewById(R.id.button_topleft); iB_topright = (ImageButton) findViewById(R.id.button_topright); iB_bottomleft = (ImageButton) findViewById(R.id.button_bottomleft); iB_bottomright = (ImageButton) findViewById(R.id.button_bottomright); iB_next = (ImageButton) findViewById(R.id.button_next); iB_repeat = (ImageButton) findViewById(R.id.button_repeat); } public void setImageNextAndRepeat() { iB_topleft .setImageResource(R.drawable.aa); iB_topright.setImageResource(R.drawable.bb); iB_bottomleft.setImageResource(R.drawable.cc); iB_bottomright.setImageResource(R.drawable.dd); iB_next.setImageResource(R.drawable.next); iB_repeat.setImageResource(R.drawable.repeat); }


Consulte el enlace a continuación e intente encontrar lo que realmente desea:

ImageView.ScaleType CENTER Centre la imagen en la vista, pero no realice escalas.

ImageView.ScaleType CENTER_CROP Escale la imagen de manera uniforme (mantenga la relación de aspecto de la imagen) para que ambas dimensiones (ancho y alto) de la imagen sean iguales o mayores que la dimensión correspondiente de la vista (menos relleno).

ImageView.ScaleType CENTER_INSIDE Escale la imagen de manera uniforme (mantenga la relación de aspecto de la imagen) para que ambas dimensiones (ancho y alto) de la imagen sean iguales o menores que la dimensión correspondiente de la vista (menos relleno).

ImageView.ScaleType FIT_CENTER Escala la imagen usando CENTER.

ImageView.ScaleType FIT_END Escala la imagen usando END.

ImageView.ScaleType FIT_START Escala la imagen usando START.

ImageView.ScaleType FIT_XY Escala la imagen usando FILL.

ImageView.ScaleType MATRIX Scale usando la matriz de imagen al dibujar.

https://developer.android.com/reference/android/widget/ImageView.ScaleType.html


Estoy usando android:scaleType="fitCenter" con satisfacción.


Estoy usando el siguiente código en xml

android:adjustViewBounds="true" android:scaleType="centerInside"


Funcionó bien en mi caso. Primero, descarga una imagen y la renombra como icono, la ubica en la carpeta dibujable. Puede cambiar el tamaño configurando android:layout_width o android:layout_height . Finalmente, tenemos

<ImageButton android:id="@+id/answercall" android:layout_width="120dp" android:layout_height="80dp" android:src="@drawable/iconimage" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:scaleType="fitCenter" />


Intenta usar android:scaleType="fitXY" en i-Imagebutton xml


Recientemente, descubrí por accidente que, dado que tienes más control en un ImageView que puedes configurar un onclicklistener para una imagen, aquí hay una muestra de un botón de imagen creado dinámicamente

private int id; private bitmap bmp; LinearLayout.LayoutParams familyimagelayout = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT ); final ImageView familyimage = new ImageView(this); familyimage.setBackground(null); familyimage.setImageBitmap(bmp); familyimage.setScaleType(ImageView.ScaleType.FIT_START); familyimage.setAdjustViewBounds(true); familyimage.setId(id); familyimage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //what you want to do put here } });