Cómo mosaico de un mapa de bits en una lona
Me gustaría crear un aspecto de papel gráfico para el mapa de bits que estoy dibujando a través de un lienzo, y tratando de averiguar la mejor manera de hacer esto.
No puedo pasar un mapa de bits de origen que contenga el fondo de gráfico para el constructor de lienzo, ya que estoy recibiendo el lienzo en un SurfaceView a través de la llamada .lockCanvas ().
- ¿Hay una solución de reproducción de video más rápida que las funciones de AndroidBitmap_xxx?
- Lona de Android. Mover y girar mapa de bits a lo largo de la ruta circular basada en el tacto?
- Imagen de umbral Blanco-Blanco en tiempo real de Android
- No quiero que Android cambie el tamaño de mi mapa de bits automáticamente
- BitmapFactory.decodeFile de memoria con imágenes 2400x2400
Algunas soluciones que he probado:
-
He intentado implementar esta solución en Thread.run () de mi SurfaceView, pero el problema que creo es cuando el BitmapDrawable se convierte en un mapa de bits … pierde las propiedades de mosaico.
Canvas = mSurfaceHolder.lockCanvas (null); BitmapDrawable TileMe = new BitmapDrawable (BitmapFactory.decodeResource (getResources (), R.drawable.editor_graph)); TileMe.setTileModeX (Shader.TileMode.REPEAT); TileMe.setTileModeY (Shader.TileMode.REPEAT);
Bitmap b = TileMe.getBitmap (); Canvas.drawBitmap (b, 0, 0, null);
-
Si utilizo el método Canvas.drawBitmap que toma un destino RectF como un parámetro , parece que el mapa de bits se mosaico para rellenar el RectF … pero ¿cómo puedo declarar un RectF de forma fiable que llena todo el área de vista?
- También no funciona el ajuste del fondo de las actividades a la apariencia de papel gráfico deseada, ya que el diseño de mapa de bits / lienzo es opaco y bloquea su visualización.
¿Alguna idea de cómo lograrlo?
- Mapa de bits a NinePatch a nuevo mapa de bits escalado
- Convertir archivo de mapa de bits inmutable a mutable Bitmap
- Cómo escalar mapas de bits en View.Canvas en Android?
- Visualización de la imagen del perfil FB en vista de imagen circular en la aplicación
- ¿Cómo mantener una imagen en una actividad de Android durante un cambio de orientación?
- Android no libera Bitmap de la memoria
- Uso de recursos extraíbles
- Lienzo: intentando usar un mapa de bits reciclado android.graphics.Bitmap en android
Usted tiene dos soluciones fáciles:
- Utilice un BitmapDrawable, pero en lugar de extraer el Bitmap, simplemente llame a BitmapDrawable.draw (Canvas). No olvide establecer los límites del dibujable para llenar su área de dibujo.
- Crear una pintura con un BitmapShader y dibujar un rectángulo con él (esto es básicamente lo que hace BitmapDrawable).
Estoy seguro de que hay una manera de obtener un efecto de mosaico con un SurfaceView
. Desafortunadamente, parece que no puede utilizar el BitmapDrawable
con un lienzo. Por lo que probablemente tendría que implementar su propio método de mosaico personalizado mediante la creación de su propia serie de Rect
's en el Canvas
y el dibujo de un mapa de bits a escala de cada uno.
Sinceramente, no sería tan difícil. Basta con obtener la anchura / altura de la vista, y crear una matriz de Rect
's sobre la base de estos datos que va a dibujar el Bitmap
de Bitmap
.
Alternativamente, si usted no necesita hacer modificaciones al fondo de mosaico real sobre la marcha, sólo dibujar como un fondo y dibujar el SurfaceView
en la parte superior de la misma. Ese mensaje que enlazó proporcionó múltiples soluciones al mosaico de un BitmapDrawable
que podría implementar.
- Android – Agregar y mostrar elementos a ListView uno a la vez usando un ArrayAdapter
- ¿Hay alguna manera de cambiar el nombre de una aplicación en la tienda de aplicaciones de Google Play?