Ich habe ein Bild, das monochrom ist, also nur weiße und schwarze Pixel. Ich habe mehrere Versionen des Bildes erstellt, um alle dpi-Ordner abzudecken. Ich verwende ein monochromes Bild, da ich den Floodfill-Algorithmus anwenden möchte. Das Problem ist, dass Android in einigen Geräten skalierte Versionen der Bilder verwendet und während der Skalierung gibt es einige graue Pixel. Um damit fertig zu werden, habe ich versucht, die Pixel zu korrigieren und das Grau entweder in Weiß oder in Schwarz zu konvertieren, aber das benötigt viel Zeit. Ist es möglich, Androiden zu zwingen, monochrome Bilder zu erzeugen, während die Bildansicht in der Größe verändert wird, oder einen schnellen Filter anzuwenden, um das monochrome Bild zu regenerieren? Während ich es nicht ausprobiert habe, sollte ich verschiedene Versionen der Bilder im Ordner nodpi erzeugen und ohne Skalierung verwenden, vielleicht mit Center Crop?Android passt monochrome Bildansicht neu an und erzeugt graue Pixel
Antwort
Sie können die Drawable als Bitmap laden.
final BitmapFactory.Options options = new BitmapFactory.Options();
// Load the bitmap as mutable object
options.inMutable = true;
final Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image, options);
Dann können Sie es mit Ihrem Algorithmus manipulieren und schließlich wird das Ergebnis auf Ihre Image
imageView.setImageBitmap(bitmap);
Auf diese Weise stellen Sie keine grauen Pixel, die durch Android Skalierung erhalten sollten.
Weitere Optionen:
Nach den 4 Codezeilen und vor dem Ausführen meines Algorithmus muss ich das Bild auf die Größe des Bildschirms skalieren und es dann dem ImageView zuweisen. Wenn ich das nicht mache und die Bitmap im letzten Schritt der imageView direkt zuweise, sollte ich nicht das gleiche Ergebnis bekommen? Wenn ich den Algorithmus anwende, muss ich eine Bitmap haben, die so groß ist wie der Bildschirm, sodass ich das Bild im ziehbaren Ordner skalieren muss. – George
Als Alternative: Könnten Sie versuchen, mit den Bitmaps zu arbeiten und das Ergebnis auf die Bildansicht setzen? – Christopher
Sie wollen mit dem Zeichenbild arbeiten und nicht mit dem Bildbetrachter? Wie kann ich das machen? Alles, was ich brauche, ist eine Bitmap, die ich von der Bildansicht bekomme! Wenn ich es direkt aus der Bilddatei bekomme, denke ich, dass ich gerettet bin! – George