android - programacion - ¿Cómo puedo estirar la imagen en el botón de imagen a toda el área del botón de imagen?
manual de programacion android pdf (6)
Debería considerar crear una imagen de 9 parches para que la imagen se ajuste correctamente en un ImageButton
en caso de que necesite estirarla, pero no desea que la imagen se distorsione.
Para tener un botón con una imagen que lo cubra completamente, puedes usar algo como esto:
<ImageButton android:id="@+id/iconBtn"
android:layout_width="64dip"
android:layout_height="64dip"
android:src="@drawable/icon_button"
android:scaleType="fitCenter"
android:background="#00000000"/>
Para obtener un tutorial completo sobre cómo crear botones con máscaras personalizadas y el uso de selectores para administrar sus estados, puede consultar un tutorial que escribí hace un tiempo aquí (Creación de un botón personalizado de Android con una máscara redimensionable) .
Aquí hay una foto que te ayudará a entender mi problema:
Quiero extender la imagen que se muestra dentro de ImageButton
a toda el área de ImageButton
. Como puede ver, la imagen con el número 1 solo toma alrededor del 95% de ImageButton
y también puede ver los límites de ImageButton
.
Todavía quiero mantener el estilo del botón de imagen
Así es como estoy usando ImageView:
<ImageButton
android:id="@+id/secondActivityBbuttonDownRight"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:scaleType="fitStart"
android:src="@drawable/111" />
Creo que descubrí cuál es mi problema. Necesito un componente personalizado que pueda contener solo una imagen y tener un efecto de clic.
ImageButton es ImageView.
Si quieres que tu imagen se llene botón
a continuación, configure android:scaleType="fitXY"
, por lo que la imagen que configuró en android:src
se estirará para llenar el botón de la imagen completa.
ImageButton tiene un fondo debajo de tu imagen y relleno.
Si no quieres fondo
set android:background="@android:color/transparent"
.
Si no quieres relleno
establecer android:padding="0"
o establecer fondo sin padding.
Si su imagen "111" no tiene relleno, simplemente use android: background "@ drawable / 111"
También puedes usar
android:scaleType="centerCrop"
android:padding="0dp"
Use el siguiente código: -
<ImageButton
android:id="@+id/secondActivityBbuttonDownRight"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:scaleType="fitStart"
android:background="@drawable/111" />
android: scaleType = "fitXY" probado y funciona correctamente.