poner - mostrar imagen al presionar boton android studio
¿Cómo mostrar el texto en un ImageButton? (10)
Aquí hay un buen ejemplo de círculo:
drawable/circle.xml
:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
android:color="#ff87cefa"/>
<size
android:width="60dp"
android:height="60dp"/>
</shape>
Y luego el botón en su archivo xml:
<Button
android:id="@+id/btn_send"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/circle"
android:text="OK"/>
Tengo un ImageButton y quiero mostrar un texto y una imagen en él. Pero cuando intento
<ImageButton
android:text="OK"
android:id="@+id/buttonok"
android:src="@drawable/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Me meto en Emulator, el botón tiene imagen pero sin el texto. ¿Cómo puedo mostrar el texto? ¡Por favor, ayúdenme!
Chicos Necesito desarrollar el botón de configuración y cierre de sesión, utilicé el siguiente código.
<Button
android:id="@+id/imageViewLogout"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/size_30dp"
android:layout_alignParentLeft="true"
android:text="Settings"
android:drawablePadding="10dp"
android:background="@android:color/transparent"
android:layout_alignParentBottom="true"
android:drawableTop="@drawable/logout" />
Como no puedes usar android:text
te recomiendo usar un botón normal y usar uno de los compuestos arrastrables. Por ejemplo:
<Button
android:id="@+id/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/buttonok"
android:text="OK"/>
Puede colocar el dibujo donde lo desee utilizando: drawableTop
, drawableBottom
, drawableLeft
o drawableRight
.
ACTUALIZAR
Para un botón, esto también funciona bastante bien. Poniendo android:background
está bien!
<Button
android:id="@+id/fragment_left_menu_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_bg"
android:text="@string/login_string" />
Acabo de tener este problema y está funcionando perfectamente.
En realidad, android:text
no es un argumento aceptado por ImageButton
pero, si estás tratando de obtener un botón con un fondo específico (no predeterminado de Android) utiliza el atributo android:background
xml, o .setBackground();
de la clase con .setBackground();
Lo resolví colocando ImageButton
y TextView
dentro de LinearLayout
con orientación vertical. ¡Funciona genial!
<LinearLayout
android:id="@+id/linLayout"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageButton
android:id="@+id/camera_ibtn"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:background="@drawable/camera" />
<TextView
android:id="@+id/textView2"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/take_pic"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</LinearLayout>
Mejor manera:
<Button
android:text="OK"
android:id="@+id/buttonok"
android:background="@drawable/buttonok"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
Puedes usar LinearLayout
lugar de usar Button
, es una disposición que utilicé en mi aplicación
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@color/mainColor"
android:orientation="horizontal"
android:padding="10dp">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/ic_cv"
android:textColor="@color/offBack"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="@string/cartyCv"
android:textColor="@color/offBack"
android:textSize="25dp" />
</LinearLayout>
Técnicamente es posible poner un título en un botón de imagen si realmente quieres hacerlo. Simplemente coloque una vista de texto sobre el botón de imagen usando FrameLayout. Recuerde no hacer clic en la vista de texto.
Ejemplo:
<FrameLayout>
<ImageButton
android:id="@+id/button_x"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@null"
android:scaleType="fitXY"
android:src="@drawable/button_graphic" >
</ImageButton>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:clickable="false"
android:text="TEST TEST" >
</TextView>
</FrameLayout>
puede usar un Button
regular y el atributo android: drawableTop (o izquierda, derecha, abajo) en su lugar.
ImageButton
no puede tener text
(o, al menos, android:text
no figura en sus atributos).
El truco es:
Parece que necesitas usar el Button
(y mira setCompoundDrawablesWithIntrinsicBounds(int,int,int,int))
o setCompoundDrawablesWithIntrinsicBounds(int,int,int,int))
.