Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Imagen sin recortar

Estoy fijando una imagen de background a LinearLayout como esto:

1.back_xml:

 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/back" > </item> <item> <shape> <solid/> <stroke android:width="1dip" android:color="#225786" /> <corners android:radius="10dip"/> <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> </shape> </item> 

2. tile.xml

  <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/pie_chart_background" android:tileMode="repeat"> </bitmap> 

Ahora estoy fijando el back.xml como background a LinearLayout que trabaja muy bien.

Necesito tener una image con las esquinas redondeadas y también una frontera a it.But solamente tengo la frontera con las esquinas redondeadas y no la imagen cuál es el problema en mi código ¿falto algo?

Así es como se ve mi imagen:

Introduzca aquí la descripción de la imagen

  • Bitmap de ahorro de Android a tarjeta SD
  • Android - nuevo BitmapDrawable obsoleto; Alternativa Bitmap.createBitmap tiene que tener w / h> 0
  • No quiero que Android cambie el tamaño de mi mapa de bits automáticamente
  • Cómo cambiar la opacidad de un mapa de bits?
  • Visualización de la imagen del perfil FB en vista de imagen circular en la aplicación
  • Android: reduce el tamaño del archivo de imagen
  • Bitmap demasiado grande para ser cargado en una textura
  • Descarga asíncrona de mapas de bits en un adaptador, con énfasis en Bitmap.recycle ()
  • 6 Solutions collect form web for “Imagen sin recortar”

    Después de pasar horas de tiempo detrás de su problema, finalmente he logrado, espero que ahora le dará el mismo resultado que desea, por favor, vaya a través de código y hágamelo saber si sus obras o no?

    Pase el parámetro apropiado a debajo de la función para conseguir la esquina redondeada con su borde del color del deseo.

     public static Bitmap getRoundedCornerImage(Bitmap bitmap, int cornerDips, int borderDips, Context context) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(output); final int borderSizePx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) borderDips, context.getResources().getDisplayMetrics()); final int cornerSizePx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) cornerDips, context.getResources().getDisplayMetrics()); final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); paint.setAntiAlias(true); paint.setColor(0xFFFFFFFF); paint.setStyle(Paint.Style.FILL); canvas.drawARGB(0, 0, 0, 0); canvas.drawRoundRect(rectF, cornerSizePx, cornerSizePx, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); paint.setColor((Color.RED)); // you can change color of your border here, to other color paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth((float) borderSizePx); canvas.drawRoundRect(rectF, cornerSizePx, cornerSizePx, paint); return output; } 

    Main.xml

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" tools:context=".MainActivity" > <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" /> </RelativeLayout> 

    Sobre crecer

     public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView rl=(ImageView)findViewById(R.id.image); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.testing); // your desire drawable image. rl.setImageBitmap(getRoundedCornerImage(bitmap, 10, 10, this)); } 

    Imagen original

    Introduzca aquí la descripción de la imagen

    Salida

    Introduzca aquí la descripción de la imagen

    A continuación enlaces me ayudan a lograr mi objetivo:

    Borde sobre un mapa de bits con esquinas redondeadas en Android

    Creación de ImageView con esquinas redondas

    Cómo hacer que un ImageView tenga esquinas redondeadas

    Cómo establecer paint.setColor (int color)

    Probar su back.xml algo como esto en lugar de dar una imagen de fondo rectángulo.

     <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="#ff00ff > </item> <item> <shape android:shape="rectangle" > <solid/> <stroke android:width="1dip" android:color="#225786" /> <corners android:radius="10dip"/> <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> </shape> </item> 

    Otra alternativa a lo que Raj ha publicado es usar una imagen de fondo con transparencia en la esquina.

    La mejor solución, ya que su fondo es simple, es utilizar un 9-parche, que es la solución nativa de Android para la mayoría de las imágenes de fondo: http://developer.android.com/guide/topics/graphics/2d- Graphics.html # nueve-parche , que es similar en estilo a cómo algunos fondos del Web site se dibujan.

    Android también tiene su propio creador de 9 parches incluido con el sdk: http://developer.android.com/tools/help/draw9patch.html , por lo que es bastante fácil editar sus propios archivos png, luego aplique el 9-patch a El diseño. La ventaja de los 9 parches es que también manejan el cambio de tamaño de la interfaz de usuario para usted, lo que significa que no encontrará tantos problemas al usar su aplicación en diferentes pantallas

    Utilice su forma en combinación con una imagen con esquinas redondeadas.

    Puede utilizar AndroidQuery para cargar la imagen con esquinas redondeadas. Consulta http://code.google.com/p/android-query/wiki/ImageLoading#Rounded_Corner

     String url ="http://www.vikispot.com/z/images/vikispot/android-w.png"; ImageOptions options = new ImageOptions(); options.round = 15; aq.id(R.id.image).image(url, options); 

    Solución 1

    1) crear una imagen de 9 parches para el borde. El centro de la imagen debe ser transparente.

    2) utilice un RelativeLayout como padre y coloque la imagen LinearLayout en la parte inferior. Ajuste el borde 9-remiendo como el fondo a otra disposición linear y colóquelo encima de la imagen LinearLayout. Entonces cubrirá las esquinas y obtendrá el resultado esperado.

    Solución 2

     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; 

    }

    Creo que deberías haberlo hecho así.

     <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <solid android:color="@color/back" /> <stroke android:width="1dip" android:color="#225786" /> <corners android:radius="10dip"/> <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" /> </shape> </item> 

    Si el fondo no es un color pero es un mapa de bits, debes seguir esta hermosa guía http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners /

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.