Esquinas redondeadas redondeadas de Android XML con etiqueta de mapa de bits

Tengo XML siguiente drawable blue_button

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <layer-list> <item><bitmap android:src="@drawable/button_blue_bg" /> </item> <item > <shape> <corners android:radius="50dip" /> <stroke android:width="1dip" android:color="#ccffffff" /> <solid android:color="#00000000" /> <padding android:bottom="3dip" android:left="3dip" android:right="3dip" android:top="3dip" /> </shape> </item> </layer-list> </item> </selector> 

Y tengo la imagen button_blue_bg con degradado con 1px de ancho.

Cuando pongo el fondo del botón consigo la siguiente imagen

Introduzca aquí la descripción de la imagen

Como se puede ver tengo fondo no recortado con borde redondeado.

¿Cómo necesito xml modificable para la imagen gradiente de fondo no estar fuera de la frontera?

Entiendo por qué sucedió, porque yo uso capas – por lo que este tipo de sándwich, pero también la programación en el objetivo c, y allí también es utilizar capas. Pero en Apple es muy bien.

2 Solutions collect form web for “Esquinas redondeadas redondeadas de Android XML con etiqueta de mapa de bits”

Yo uso esto …. Primero una capa para la definición básica, fije esta capa como backgound de su disposición:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <stroke android:width="0.2dp" android:color="@color/anycolor" /> <corners android:radius="10dp" > </corners> </shape> </item> <item> <bitmap android:src="@drawable/imgback" /> </item> </layer-list> 

Yo uso esta función para hacer esquinas redondas:

  public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = 12; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output ; } 

Y finalmente, el código en la actividad:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menu); // i use a Relative Layout RelativeLayout rl = (RelativeLayout) findViewById(R.id.rlmenu); // Obtain then backgroud of RelativeLayout LayerDrawable layer = (LayerDrawable) rl.getBackground(); // obtain the image set in the Layer BitmapDrawable bg = (BitmapDrawable) layer.getDrawable(1); // create a new BitmapDrawable from the function Drawable d =new BitmapDrawable(getRoundedCornerBitmap(bg.getBitmap())); // set the new roundcorner image in the layer layer.setDrawableByLayerId(1, d); rl.setBackgroundDrawable(d); } 

Un parche de 9 sería perfecto para su situación

  • ¿Fondo vertical-rayado en XML?
  • Forma del androide con el movimiento inferior
  • ¿Cómo usar una forma dibujable junto con una imagen?
  • Escala Dibujable - ¿setImageLevel determina la escala?
  • Configuración de alfa de dibujable a través de xml
  • Botones de radio específicos: la forma más sencilla de configurar diferentes estilos para los botones primero / último
  • ¿Cómo hago un dibujable de varias imágenes?
  • ¿Cómo conseguir el efecto de la luz del centro del gradiente del androide?
  • Herramienta de Android para generar selector xml para botones
  • Problema de representación de Android Drawable (Barra de progreso, Interruptor)
  • Rectángulo dentro de otro rectángulo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.