ImageButton: icono cuadrado de fuerza (height = WRAP_CONTENT, width =?)
En mi LinearLayout horizontal tengo un TextEdit y un ImageButton. ImageButton es tan alto como el TextEdit.
Me gustaría que el ImageButton sea exactamente tan ancho como largo.
- Android ImageButton setImageResource de la variable
- ¿Qué debo usar ImageButton o Button?
- Creación de un botón de forma triangular para la aplicación Android
- Android ImageButton con imagen y texto
- Android ImageButton escala y mantener relación de aspecto
En este momento parece que el ancho del ImageButton es como cuando no hay escala (anchura de ImageButton [px] = anchura dibujable unscaled [px]):
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/txtName" android:layout_width="1dp" android:layout_height="wrap_content" android:layout_weight="1" /> <ImageButton android:id="@+id/btSet" android:layout_width="wrap_content" android:layout_height="match_parent" android:scaleType="fitEnd" android:src="@drawable/pin2" /> </LinearLayout>
Cómo debería ser:
- Cómo cambiar el estilo de un ImageButton de forma programática
- Cómo establecer un listener de onclick para un imagebutton en un alertdialog
- ¿Cómo hacer que los límites de ImageButtons rodeen la imagen?
- Android ImageButton frontera?
- ¿Cómo establecer un ImageButton para cambiar sólo cuando mi dedo está tocando
- ¿Puedo ocultar un botón de imagen en un diseño, (dimensiones y fondo) hasta que aparezca una llamada para establecerla?
- OnClickListener no se puede resolver a un tipo (Eclipse)
- No se puede resolver drawable en el atributo "src"
Pruebe esto, creo que esto debería funcionar:
<RelativeLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <ImageButton android:id="@+id/btSet" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:scaleType="centerInside" android:adjustViewBounds="true" android:src="@drawable/pin2" /> <EditText android:id="@+id/txtName" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toLeftOf="@id/btSet" /> </RelativeLayout>
Explicación: centerInside
asegurará que la imagen se escalará proporcionalmente dentro de los límites del ImageButton
. adjustViewBounds="true"
… ajustará los límites de la vista, si la imagen necesita ser escalada.
Intenta agregar
AdjustViewBounds = "true"
Al ImageButton, que debe recortar el exceso de ancho
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/txtName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <ImageButton android:id="@+id/btSet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:src="@drawable/pin" /> </LinearLayout>
Utilizar
android:scaleType="fitCenter"
O android:scaleType="centerInside"
En el ImageButton en archivo xml.
Simplemente use el weightSum para dividir el tamaño de los controles en consecuencia …
<?xml version="1.0" encoding="utf-8" ?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1.0" > <EditText android:id="@+id/txtName" android:layout_weight="0.8" android:layout_height="wrap_content" android:layout_width="0dp" android:inputType="text" android:singleLine="true"/> <ImageButton android:id="@+id/btSet" android:layout_weight="0.2" android:layout_height="wrap_content" android:layout_width="0dp" android:scaleType="fitEnd" android:src="@drawable/pin2" /> </LinearLayout> </LinearLayout>
Espero que te ayude.
Como usted quiere que su ImageButton
es extensible y exactamente tan ancho como es largo, su mejor utilizar la NinePatch Image
. Puedes encontrar la forma de ayuda aquí Draw 9-patch & ¿Cómo funciona la herramienta de nueve parches de Android?
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1.0" > <EditText android:id="@+id/txtName" android:layout_weight="0.75" // this work like percentage adjust as u want 70 or 75 android:layout_height="wrap_content" android:layout_width="0dp" android:inputType="text" android:singleLine="true"/> <ImageButton android:id="@+id/btSet" android:layout_weight="0.25" // this work like percentage adjust as u want 25 or 30 android:layout_height="wrap_content" android:layout_width="0dp" android:scaleType="fitEnd" android:src="@drawable/pin2" /> </LinearLayout>
Simplemente agregue la siguiente línea a su ImageButton y el fondo extra se desvanecerá:
android:layout_gravity="center|clip_horizontal"
Espero que esto funcione
Sólo se encontró con algo como esto y las otras sugerencias no ayuda. ¿Qué ayudó a establecer el relleno en el ImageButton:
android:padding="5dp"
Además de eso, no toque el diseño original. El botón se convirtió en cuadrado en los 3 emuladores que probé (3.2, 4.4.2, 5.1)
Puede cambiar el tamaño del botón de imagen mediante px … como a continuación …
`android:layout_width="5px" android:layout_height="5px"`
- La etiqueta <item> requiere un atributo "drawable"
- ¿Cómo hacer GPS-app para Android usando kivy, pyjnius?