¿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.
- Arquitectura limpia contra MVPC / MVC / MVP
- Demasiado repetitivo, ¿cómo puedo reducir mis constructores de POJO?
- ContentProvider con varias tablas
- ¿Hay un patrón de diseño de Android para manejar múltiples fragmentos en una sola actividad?
- Patrones de diseño para Android
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
- Métodos estáticos o singleton, ¿cuál elegir?
- MVP de Android con RxAndroid + Retrofit
- Proyecto de la Biblioteca de Android - Definición de clases
- Patrón de diseño de Android MVVM
- Patrones de diseño de acceso a datos de Android: Proveedor de contenido vs repositorio
- Ejemplos de patrones de diseño de Android MVVM
- ¿Es IntentService una implementación del patrón de comandos?
- Práctica recomendada: Ampliación o anulación de una clase de proyecto de biblioteca de Android
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
- La forma rectangular dibujable no se mostrará como elemento selector de casilla de verificación
- Google Sign In no funciona después de publicado en playstore