texto studio redondo pulsarlo imagen hacer fondo estilos con color clic cambiar botón botones boton android

redondo - cambiar color del botón al pulsarlo android studio



¿Cómo cambiar el color del botón en Android cuando se hace clic? (11)

Estoy usando este código (con efecto dominó):

<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/color_gray"> <item android:id="@android:id/mask"> <color android:color="@color/color_gray" /> </item></ripple>

Estoy trabajando en la aplicación de Android. Quiero que se coloquen 4 botones horizontalmente en la parte inferior de la pantalla. En estos 4 botones, 2 botones tienen imágenes en ellos. El borde de los botones debe ser de color negro y el borde debe ser lo más delgado posible. Cuando hago clic en el botón, quiero que el fondo del botón cambie a color azul sin cambiar el color del borde y debe permanecer en ese color durante un tiempo. ¿Cómo puedo lograr este escenario en Android?


Guarde este código en la carpeta dibujable con "bg_button.xml" y llame a "@ drawable / bg_button" como fondo del botón en su xml:

<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#004F81" /> <stroke android:width="1dp" android:color="#222222" /> <corners android:radius="7dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startColor="#89cbee" android:endColor="#004F81" android:angle="270" /> <stroke android:width="1dp" android:color="#4aa5d4" /> <corners android:radius="7dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector>


Hai la manera más fácil es esta:

agregue este código a mainactivity.java

public void start(View view) { stop.setBackgroundResource(R.color.red); start.setBackgroundResource(R.color.yellow); } public void stop(View view) { stop.setBackgroundResource(R.color.yellow); start.setBackgroundResource(R.color.red); }

y luego en tu actividad principal

<button android:id="@+id/start" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="start" android:text="Click"> </button><button android:id="@+id/stop" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="stop" android:text="Click">

o sigue este tutorial


Para tratar adecuadamente durante cuánto tiempo desea que su botón permanezca en su otro color, le aconsejaría esta versión:

button.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN: button.setBackground(getResources().getDrawable(R.drawable.on_click_drawable)); break; case MotionEvent.ACTION_UP: new java.util.Timer().schedule( new java.util.TimerTask() { @Override public void run() { ((Activity) (getContext())).runOnUiThread(new Runnable() { @Override public void run() { button.setBackground(getResources().getDrawable(R.drawable.not_clicked_drawable)); } }); } }, BUTTON_CLICK_TIME_AFTER_RELEASE_ANIMATION); break; default: } return false; } });

BUTTON_CLICK_TIME_AFTER_RELEASE_ANIMATION indica después de cuánto tiempo [ms] el botón se restablecerá al estado anterior (sin embargo, es posible que desee utilizar algún valor booleano para verificar que el botón no se haya utilizado en el medio, según lo que desee lograr ...) .


Prueba esto

final Button button = (Button) findViewById(R.id.button_id); button.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_UP) { button.setBackgroundColor(Color.RED); } else if(event.getAction() == MotionEvent.ACTION_DOWN) { button.setBackgroundColor(Color.BLUE); } return false; } });


Prueba esto......

Primero crea un archivo xml llamado button_pressed.xml Estos son sus contenidos.

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/icon_1" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/icon_1_press" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/icon_1_press" /> <item android:drawable="@drawable/icon_1" /> </selector>

No, intenta esto en tu botón.

int imgID = getResources().getIdentifier("button_pressed", "drawable", getApplication().getPackageName()); button.setImageResource(imgID);

button_pressed.xml debe estar en la carpeta dibujable. icon_1_press e icon_1 son dos imágenes para presionar un botón y enfocar normalmente.


Referir esto,

boolean check = false; Button backward_img; Button backward_img1; backward_img = (Button) findViewById(R.id.bars_footer_backward); backward_img1 = (Button) findViewById(R.id.bars_footer_backward1); backward_img.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { check = true; backward_img.setBackgroundColor(Color.BLUE); } }); if (check == true) { backward_img1.setBackgroundColor(Color.RED); backward_img.setBackgroundColor(Color.BLUE); }


Si desea cambiar la imagen de fondo o el color del botón cuando se lo presiona, simplemente copie este código y pegue su proyecto en la ubicación exacta que se describe a continuación.

<!-- Create new xml file like mybtn_layout.xml file in drawable --> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/pressed" /> <!--pressed --> <item android:drawable="@drawable/normal" /> <!-- Normal --> </selector> <!-- Now this file should be in a drawable folder and use this single line code in button code to get all the properties of this xml file --> <Button android:id="@+id/street_btn" android:layout_width="wrap_content" android:background="@drawable/layout_a" > <!-- your required code --> </Button>


puedes probar este código para resolver tu problema

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/login_selected" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/login_mouse_over" /> <!-- focused --> <item android:drawable="@drawable/login" /> <!-- default --> </selector>

escribe este código en tu dibujable crea un nuevo recurso y ponle el nombre que quieras y luego escribe el nombre de este drwable en el botón igual que nos referimos a image src en android


Un enfoque es crear un archivo XML como este en drawable , llamado whatever.xml:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/bgalt" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/bgalt" /> <item android:drawable="@drawable/bgnorm" /> </selector>

bgalt y bgnorm son imágenes PNG en drawable.

Si crea los botones programáticamente en su actividad, puede establecer el fondo con:

final Button b = new Button (MyClass.this); b.setBackgroundDrawable(getResources().getDrawable(R.drawable.whatever));

Si configura el estilo de sus botones con un XML, haría algo como:

<Button android:id="@+id/mybutton" android:background="@drawable/watever" />

Y finalmente un enlace a un tutorial . Espero que esto ayude.


<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- default --> <item android:state_pressed="false" android:state_focused="false"> <shape android:innerRadiusRatio="1" android:shape="rectangle" > <solid android:color="#00a3e2" /> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape> </item> <!-- button focused --> <item android:state_pressed="false" android:state_focused="true"> <shape android:innerRadiusRatio="1" android:shape="rectangle" > <solid android:color="#5a97f5" /> <padding android:bottom="5dp" android:left="10dp" android:right="10dp" android:top="5dp" /> </shape></item> <!-- button pressed --> <item android:state_pressed="true" android:state_focused="false"> <shape android:innerRadiusRatio="1" android:shape="rectangle" > <solid android:color="#478df9"/> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape></item> </selector>