Generar una imagen con texto personalizado en Android

Estoy intentando crear una aplicación para crear tarjetas personalizadas. Quisiera añadir un poco de texto sobre un fondo de encargo (una imagen del jpg).

¿Cuál es la mejor manera de hacerlo? Necesito mostrar al usuario una vista previa de la tarjeta antes de enviarla al servidor.

Gracias

Utilice debajo del código para alcanzar su requisito

Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.yourimage); // the original file yourimage.jpg i added in resources Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888); String yourText = "My custom Text adding to Image"; Canvas cs = new Canvas(dest); Paint tPaint = new Paint(); tPaint.setTextSize(35); tPaint.setColor(Color.BLUE); tPaint.setStyle(Style.FILL); cs.drawBitmap(src, 0f, 0f, null); float height = tPaint.measureText("yY"); float width = tPaint.measureText(yourText); float x_coord = (src.getWidth() - width)/2; cs.drawText(yourText, x_coord, height+15f, tPaint); // 15f is to put space between top edge and the text, if you want to change it, you can try { dest.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/ImageAfterAddingText.jpg"))); // dest is Bitmap, if you want to preview the final image, you can display it on screen also before saving } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Tienes que usar el permiso de abajo en el archivo de manifiesto.

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Para mi dispositivo la ruta es /sdcard para acceder a la tarjeta SD externa, puede variar para otros dispositivos. Algunos dispositivos pueden tener /mnt/sdcard puede ser para tarjetas SD internas. Sólo hay que comprobarlo antes de usar este código.

En realidad, escribí el código anterior para alguna otra pregunta, que requiere sello de tiempo en la foto después de capturado de la cámara. Te di la misma solución con algunas modificaciones para tu requerimiento específico.

Espero que puedas entender esto. Si tiene alguna duda sobre el código no dude en preguntar.

No estoy seguro de que esta es la mejor solución, pero puede ayudarle.

Paso 1: Crear un diseño relativo (en cualquier otro) y establecer la imagen como su fondo.

Paso 2: Ahora agregue una vista de texto con el ancho y la altura como fill_parent o match_parent y también la gravedad como top | center_horizontal.

Paso 3: Ahora agregue otro botón o cualquier otro control de diseño que activará la confirmación del usuario. (Debe colocar este control fuera del diseño relativo).

Paso 4: Si el usuario ha confirmado la imagen, puede tomar una captura de pantalla de su diseño relativo a través del código siguiente:

 v1.setDrawingCacheEnabled(true);//v1 is the object of your Relative layout Bitmap bm = v1.getDrawingCache(); if (bm != null) { //TODO:write the code for saving the image. Toast toast = Toast.makeText(YourActivity.this, "image saved", Toast.LENGTH_LONG); toast.show(); } else { Toast toast = Toast.makeText(YourActivity.this, "No image saved.", Toast.LENGTH_LONG); toast.show(); } 
  • Incorpore la línea que envuelve al usar bulletspan
  • Cómo cambiar el color de texto de un Android ToogleButton en el cambio de estado?
  • ¿Cómo podemos aumentar el tamaño de la fuente en tostadas?
  • Seleccione Texto y muestre el significado como pop-up en MUPDF
  • ¿Existen bibliotecas de análisis de PDF gratuitas que funcionen en Android?
  • Cómo configurar el idioma holandés en texto a voz?
  • Mostrar el teclado cuando se hace clic en TextView en Mono para Android
  • ¿Cómo mostrar el texto vectorizado usando libgdx?
  • Paginación en Android TextView
  • Texto de Android TextView Justify
  • ¿Cómo ajustar el texto en el botón?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.