Dibujar texto en la parte superior de mapa de bits no
Quiero mostrar un punto y un texto encima de una imagen. He intentado varios tutorial sobre la superposición de mapa de bits, pero no parece funcionar. Aquí está el código que muestra la imagen de fondo.
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.roomplan); mIV = (ImageView)findViewById(R.id.ImageView01); mIV.setImageBitmap(mBitmap); mIV.invalidate(); btnDraw = (Button)findViewById(R.id.Button01); btnDraw.setOnClickListener(this);
A continuación, en OnClickListener, defino otro mapa de bits y dibujar el punto y el texto.
- ¿Cómo puedo superponer un archivo de audio sobre otro y guardarlo?
- Pantalla de superposición en Android
- Superposición sobre la barra de navegación en Android 4
- Detección de la superposición de pantalla: cómo manejar esto en una aplicación de superposición de pantalla
- No se puede agregar la ventana android.view.ViewRoot$W@44da9bc0 - permiso denegado para este tipo de ventana
Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Bitmap.Config.ARGB_4444); Canvas canvas = new Canvas(bmOverlay); Paint paint = new Paint(); paint.setColor(Color.CYAN); paint.setTextSize(20); paint.setFlags(Paint.ANTI_ALIAS_FLAG); canvas.drawText("You are here", 100, 100, paint); canvas.drawPoint(30.0f, 50.0f, paint); canvas.drawBitmap(bmOverlay, 0, 0, null);
No aparece nada en la parte superior de la imagen de fondo, aunque quite la imagen. Cualquier sugerencia por favor?
Actualización: El código de trabajo
// get a reference to the background image mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.raumplan_isst); mIV = (ImageView)findViewById(R.id.ImageView01); // create a mutable bitmap with the same size as the background image Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Bitmap.Config.ARGB_4444); // create a canvas on which to draw canvas = new Canvas(bmOverlay); Paint paint = new Paint(); paint.setColor(Color.CYAN); paint.setTextSize(20); paint.setFlags(Paint.ANTI_ALIAS_FLAG); // if the background image is defined in main.xml, omit this line canvas.drawBitmap(mBitmap, 0, 0, null); // draw the text and the point canvas.drawPoint(fKoordX, fKoordY, paint); canvas.drawText("You are here", fKoordX+3, fKoordY+3, paint); // set the bitmap into the ImageView mIV.setImageBitmap(bmOverlay);
- Google Maps Android API v2 Superposición de rutas
- Implementación de un mapa interior
- Android Crear imagen "Ghost" (Touch-through)
- FragmentTransaction.remove no tiene efecto
- ¿Cómo grabar video con superposición animada en Android?
- ¿Cómo capturar eventos onTouch en dos vistas superpuestas?
- Imagen sobre otra imagen Android
- Mapas de Android NullPointerException ItemizedOverlay
¿Qué haces con el lienzo? ¿Dónde se utiliza? (Publicar más código …)
Aparte de que el orden de dibujo es incorrecto, usted está sobregirando su texto y punto con el mapa de bits.
Editar:
Estoy un poco perdido, ya que no sé cuál de sus imágenes debe ser el fondo y qué imagen ya ves … así que estoy adivinando que mBitmap (el roomplan) es su fondo? Que añadir que a su diseño como una imagen de fondo y simplemente utilizar el ImageView para dibujar su superposición …
Si su superposición necesita una imagen de fondo también, pruebe que:
// overlay background canvas.drawBitmap(myBmp, 0, 0, paint); // draw the text and the point canvas.drawText("You are here", 100, 100, paint); canvas.drawPoint(30.0f, 50.0f, paint);
Si su ImageView debe tener el plan de sala como fondo, pruebe que:
// overlay background canvas.drawBitmap(mBitmap, 0, 0, paint); // draw the text and the point canvas.drawText("You are here", 100, 100, paint); canvas.drawPoint(30.0f, 50.0f, paint);
- Android: AutoCompleteTextView con sugerencias predeterminadas
- Cómo implementar mostrar y ocultar fragmento dentro de fragmento en android