transparente studio pulsarlo hacer fondo color clic cambiar botón boton android

android - studio - Botón con color de fondo y texto transparente.



cambiar color del botón al pulsarlo android studio (1)

Dos formas: (1) no es una solución precisa ya que la alineación del texto debe codificarse a mano pero:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button view1 = new Button(this); RelativeLayout layout1 = (RelativeLayout) findViewById(R.id.layout1); layout1.setBackground(getResources().getDrawable(R.drawable.choose_background)); layout1.addView(view1); Bitmap mainImage = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888); { //creating image is not necessary, more important is ability to grab the bitmap. Canvas canvas = new Canvas(mainImage); canvas.drawColor(Color.WHITE); view1.setBackground(new BitmapDrawable(getResources(), mainImage)); } { Canvas canvas = new Canvas(mainImage); //most interesting part: Paint eraserPaint = new Paint(); eraserPaint.setAlpha(0); //this eraserPaint.setTextSize(200); eraserPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); //and this canvas.drawText("some", 10, 150, eraserPaint); } }

la idea de eraserPaint es desde aquí ¿ Borrar partes de mapa de bits usando el modo PorterDuff y aquí Android cómo aplicar la máscara en ImageView?

en activity_main.xml todo es predeterminado:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/layout1" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.runup.myapplication2.app.MainActivity">

y el resultado es:

(2) La segunda forma es agregar este comportamiento a la clase para usarlo en xml. https://github.com/togramago/ClearTextViewProject - proyecto de biblioteca con una muestra. Puede agregar como biblioteca o copiar solo la clase ClearTextView a su proyecto (ya que es un TextView extendido sin recursos xml). Trabaja en cambios de configuración y cambios dinámicos de texto y / o fondo.

El resultado de la muestra en retrato:

y en el paisaje:

Tengo un diseño con alguna imagen de fondo y tengo un botón en él. El color de fondo del botón es, por ejemplo, blanco. Ahora quiero escribir un texto en él de tal manera que el texto muestre cualquier cosa que esté detrás del botón (como texto transparente). Ahora, obviamente, si hago que el color del texto sea transparente, el texto desaparecerá y veré un botón blanco sin texto. ¿Como hacer esto?

Captura de pantalla: