Obecnie tworzę swoją pierwszą aplikację na Androida i mam problemy z renderowaniem obrazów. Sam obraz jest dobrej jakości, ale po oddaniu go jakość drastycznie spada. Krawędzie stają się postrzępione i wyglądają na słabo wykonane. Wszyscy, których dotąd pokazywałem, niemal od razu to zauważyli, bez żadnych podszeptów. [Start na lewo, na końcu prawej:]Pogniecione krawędzie na obrazach renderowanych w Androidzie
http://i.stack.imgur.com/gld5A.png
Próbuję wszystkiego jestem świadomy i każda wskazówka udało mi się znaleźć, rozglądając się w internecie, ale nic nie wydaje się, aby to naprawić.
Obecnie otrzymuję obraz jako mapę bitową i skalować go:
Bitmap holeImage = BitmapFactory.decodeResource(res, R.drawable.hole_image);
Bitmap holeImageBMP = Bitmap.createScaledBitmap(holeImage, width, height, true);
Raz mam obraz, tworzę farba, ustawić kilka wygładzanie atrybuty true, a następnie wyciągnąć go na płótnie :
Paint smoothingPaint = new Paint();
smoothingPaint.setAntiAlias(true);
smoothingPaint.setFilterBitmap(true);
smoothingPaint.setDither(true);
canvas.drawBitmap(holeImageBMP, 0, 0, smoothingPaint);
Jednak, jak widać powyżej, jakość obrazu drastycznie maleje. Widziałem wiele wspaniałych obrazów i szczerze mówiąc nie jestem pewien, co się dzieje, więc każda rada byłaby świetna!
Inne uwagi: Używam metody SurfaceView do obsługi rysunku, podobnego w naturze do przykładu LunarLander podanego w zestawie SDK.
Jeszcze raz dziękuję!
Próbowałem go i to nie różnicę. Przyznaję, że jest tylko jeden powód, ponieważ ktoś w innym wątku stackoverflow.com zasugerował: P Doceniam tę myśl! Naprawdę każdy pomysł jest pomocny. –
OK, myślę, że odpowiedź Pedro jest bardziej pomocna w tym przypadku. Nie zrobiłem jeszcze nic z Androidem, więc nie wiedziałem, że istnieją problemy z ditheringiem/bandowaniem i właśnie udzieliłem odpowiedzi związanej z grafiką. – schnaader
Wystarczająco fair. Jeszcze raz dzięki! : D –