¿Por qué Bitmap a Base64 Cadena que muestra el fondo negro en webview en android?
Estoy utilizando un código que se combinan a imágenes en 1 mediante el uso de lienzo. Muestro esa imagen a ImageView que parece muy bien. Pero cuando intento demostrar eso en WebView demuestra el fondo negro a la derecha esa imagen. Intento cambiar el color de fondo en HTML pero no cambio el color. O hacer transparente. ¿Alguien puede ayudar? El resultado está aquí La imagen de arriba está en ImageView y debajo está en WebView.
public class MyBimapTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView img1 = (ImageView) findViewById(R.id.ImageView01); img1.setVisibility(View.INVISIBLE); Drawable dra1 = img1.getDrawable(); Bitmap map1 = ((BitmapDrawable) dra1).getBitmap(); ImageView img2 = (ImageView) findViewById(R.id.ImageView02); img2.setVisibility(View.INVISIBLE); Drawable dra2 = img2.getDrawable(); Bitmap map2 = ((BitmapDrawable) dra2).getBitmap(); // *** ByteArrayOutputStream baos = new ByteArrayOutputStream(); map1.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); String abc = Base64.encodeBytes(b); byte[] byt = null; try { byt = Base64.decode(abc); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } map1 = BitmapFactory.decodeByteArray(byt, 0, byt.length); // *** Bitmap map = combineImages(map1, map2); ByteArrayOutputStream bbb = new ByteArrayOutputStream(); map.compress(Bitmap.CompressFormat.JPEG, 100, bbb); byte[] bit = bbb.toByteArray(); String imgToString = Base64.encodeBytes(bit); String imgTag = "<img src='data:image/jpg;base64," + imgToString + "' align='left' bgcolor='ff0000'/>"; WebView webView = (WebView) findViewById(R.id.storyView); webView.loadData(imgTag, "text/html", "utf-8"); Drawable end = new BitmapDrawable(map); ImageView img3 = (ImageView) findViewById(R.id.ImageView03); img3.setImageBitmap(map); } public Bitmap combineImages(Bitmap c, Bitmap s) { Bitmap cs = null; int width, height = 0; width = c.getWidth() + (s.getWidth() / 2); height = c.getHeight() + (s.getHeight() / 2); cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Canvas comboImage = new Canvas(cs); comboImage.drawBitmap(c, 0f, 0f, null); comboImage.drawBitmap(s, c.getWidth() - (s.getWidth() / 2), c .getHeight() - (s.getHeight() / 2), null); return cs; }
}
- Nueve imágenes de parches para el desarrollo web
- La imagen de fondo salta cuando la barra de direcciones oculta iOS / Android / Mobile Chrome
- Hacer el botón de llamada telefónica en la página Web de Android
- Android- PhoneGap / WebView ignora las metaetiquetas de la ventana de visualización?
- es el tamaño de la ventana de visualización móvil más grande que el tamaño de la pantalla?
- ¿Es posible activar el menú compartido en smartphones (a través de HTML / JS)?
- Uso de varios colores de texto en la vista de texto de Android
- Contactar con Bubble EditText
- ¿Hay de todos modos para abrir una URL de facebook en la aplicación de Facebook de un teléfono?
- Chrome para Android error contenteditable
- ¿Divide la pantalla en dos divisiones usando la framwork iónica?
- La línea Html (regla horizontal) no es compatible con el cliente de Gmail de Android
- Desactivar texto predictivo para el campo de contraseña en sitios web
El formato JPEG
no admite transparencia alfa, por lo que el fondo transparente se vuelve negro cuando convierte su imagen original en JPEG
.
Utilice el formato PNG
lugar:
map1.compress(Bitmap.CompressFormat.PNG, 100, baos);
y
String imgTag = "<img src='data:image/png;base64," + imgToString + "' align='left' bgcolor='ff0000'/>";
- Android Mapview: Fusionar marcadores superpuestos en un nuevo marcador
- Línea de encabezado de TableLayout de Android