texto tamaño studio redondo poner imagen icon ejemplo diseño con como centered botones boton android android-layout android-button

tamaño - Botón de Android con icono y texto



imagebutton android studio (4)

@Liem Vo es correcto, pero si usa End / Start en lugar de Right / Left, el estudio de Android lo apreciará :)

<Button android:id="@+id/bSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="Search" android:drawableStart="@android:drawable/ic_menu_search" android:textSize="24sp"/>

Tengo algunos botones como este en mi aplicación:

<Button android:id="@+id/bSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="Search" android:textSize="24sp" />

Estoy tratando de crear un mismo botón con texto y un ícono. android: drawableLeft no funciona para mí (Tal vez lo haría, pero no sé cómo establecer una altura máxima para el icono).

Así que creé un LinearLayout con ImageView y TextView y lo hice actuar como un botón:

<LinearLayout android:id="@+id/bSearch2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:drawable/btn_default" android:clickable="true" android:padding="16dp" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="5dp" android:adjustViewBounds="true" android:maxHeight="30dp" android:maxWidth="30dp" android:scaleType="fitCenter" android:src="@drawable/search_icon" /> <TextView android:id="@+id/tvSearchCaption" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:textSize="24sp" android:paddingRight="30dp" android:gravity="center" android:text="Search" /> </LinearLayout>

Mi nuevo botón es exactamente lo que quiero (tamaño de letra, icono y ubicación de texto). Pero no se parece a mis botones predeterminados:

Así que lo intenté, para cambiar el fondo y el color del texto de mi nuevo Botón:

Button Search = (Button) findViewById(R.id.bSearch); LinearLayout bSearch2 = (LinearLayout) findViewById(R.id.bSearch2); bSearch2.setBackground(bSearch.getBackground()); TextView tvSearchCaption = (TextView)findViewById(R.id.tvSearchCaption); tvSearchCaption.setTextColor(bSearch.getTextColors().getDefaultColor());

Esto da un resultado extraño, mi viejo botón se estropea:

Cuando cambio el orden de estos dos botones en el XML, por lo que el "nuevo botón" va primero, produce otro resultado extraño:

Ahora noté que cuando trato de presionar el botón anterior, se presiona el nuevo.

¿Algunas ideas?


Para agregar una imagen a la izquierda, derecha, arriba o abajo, puede usar atributos como este:

android:drawableLeft android:drawableRight android:drawableTop android:drawableBottom

El código de muestra se da arriba. También puede lograr esto usando el diseño relativo.


Para cualquiera que desee hacer esto de forma dinámica, setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom) en el objeto botones.

Muestra

Button search = (Button) findViewById(R.id.yoursearchbutton); search.setCompoundDrawables(''your_drawable'',null,null,null);


Prueba este.

<Button android:id="@+id/bSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="16dp" android:text="Search" android:drawableLeft="@android:drawable/ic_menu_search" android:textSize="24sp"/>