Ich schreibe eine Anwendung, die große Bitmaps in Kacheln wie Google Maps zeigt. Ein Server sendet Bitmaps, die ich in eine skalierte/übersetzte Zeichenfläche zeichne. Ich möchte, dass diese Bitmaps mit Anti-Aliasing gezeichnet werden, aber wenn ich Anti-Aliasing auf der Leinwand aktiviere, werden die Kanten der Bitmaps mit dem Hintergrund vermischt (keine/schwarz) und erzeugen hässliche dunkle Linien zwischen den Kacheln. Gibt es eine Möglichkeit, Android die Kanten der Bitmap beim Zeichnen nicht antialias zu geben? Oder welche anderen Seelenlösungen gibt es für dieses Problem?Android teilweise Anti-Alias
Antwort
Sie aktivieren das Anti-Aliasing auf der Zeichenfläche nicht, Sie aktivieren es für das Paint-Objekt, das Sie für Canvas.drawBitmap() bereitstellen. Die Lösung hier ist also, glaube ich, zwei verschiedene Paint-Objekte zu verwenden, das erste mit AA aus, um Bitmaps zu zeichnen, und das zweite mit AA, um alles andere zu zeichnen.
Möglicherweise möchten Sie weiterhin Paint.setDither() oder Paint.setFilterBitmap() verwenden, um zu beeinflussen, wie die Bitmaps gezeichnet werden.
Lassen Sie mich die Frage selbst beantworten: Ich war verwirrt, weil ich dachte, Antialiasing wäre das Feature, das ich brauchte. In der Tat, das Setzen von Antialias auf False und Bitmapfilterung auf True auf dem Paint-Objekt löste das Problem. Antialiasing, das auf Wahr gesetzt wurde, machte die hässlichen Linien zwischen den Fliesen. Danke!
Ja, das war meine Antwort vom 5. Januar :( – Josh
Sie haben nicht die Bitmap-Filterung erwähnt, so ist es nicht. – sbrandt
Sprechen Sie nicht über Paint.setFilterBitmap()? Wenn ja, dann erwähnte ich Bitmap Wie auch immer, ich bin froh, dass du es herausgefunden hast (vor fast einem Jahr :)). – Josh