¿Cómo repetir un patrón en la vista personalizada hasta los límites?

Quiero restringir el patrón de repetición de un conjunto de pequeños patrones aleatorios a una región en particular. Estoy creando un objeto (CustomView) mediante el uso de lienzo, tengo el conocimiento de cómo repetir un patrón en el diseño utilizando código xml.

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

Esto no está funcionando para el lienzo.

Quiero esencialmente utilizar un mapa de bits como una imagen de fondo para customview y me gustaría repetir el mapa de bits en las direcciones de vista X e Y.

Mira esta imagen

Introduzca aquí la descripción de la imagen

Por favor, intente con este código: –

 paint = new Paint(Paint.FILTER_BITMAP_FLAG); Shader mShader1 = new BitmapShader(bitmap, Shader.TileMode.REPEAT,Shader.TileMode.REPEAT); paint.setShader(mShader1); 

Puede hacer su componente personalizado con un mapa de bits de fondo repetido:

 BitmapDrawable bitmapBg = new BitmapDrawable(BitmapFactory.decodeResource( getResources(), R.drawable.repeatbg)); bitmapBg.setTileModeX(Shader.TileMode.REPEAT); image.setBackgroundDrawable(bitmapBg); 

Y usted puede hacer una máscara con la imagen que usted desea como ese triángulo y su bg.

 public static Bitmap getMaskedContactImage(Context context, Bitmap contactImageBitmap, int maskToBeApplied) { Bitmap mask = BitmapFactory.decodeResource(context.getResources(), maskToBeApplied); Bitmap output = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888); final Rect finalRect = new Rect(0, 0, contactImageBitmap.getWidth(), contactImageBitmap.getHeight()); final Rect originRect = new Rect(0, 0, mask.getWidth(), mask.getHeight()); Canvas canvas = new Canvas(output); Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG); xferPaint.setColor(Color.BLACK); xferPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawBitmap(contactImageBitmap, finalRect, originRect, null); canvas.drawBitmap(mask, originRect, originRect, xferPaint); contactImageBitmap.recycle(); mask.recycle(); return output; } 

Que usará una máscara donde el color negro es la imagen final.

Si no he entendido mal, que puede lograr lo que está mostrando en la captura.

Saludos, Alex

  • Utilizar try / catch para evitar que la aplicación se bloquee
  • Model-View-Presenter y diseño de aplicaciones para Android
  • ¿Cómo guarda de forma segura una orden en la nube, si no puede verificar el pago desde la nube?
  • Singletons vs. Contexto de la aplicación en Android?
  • Android y OOP - Variables globales vs heredados Getters en fragmentos
  • Patrón MVC en Android
  • ¿Cómo compartir datos entre dos presentadores en la arquitectura MVP en Android?
  • Singletons vs. Contexto de la aplicación en Android?
  • Modelo de autenticación para la aplicación de Android
  • ¿Cómo uso eficazmente un bus de eventos?
  • Editar entrada de texto con patrón android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.