Mohammad Adib
Mohammad Adib

Reputation: 818

Android bitmap quality issues

In my app, the bitmap is drawn as if the color is some lower quality type. If i load up the background image using the gallery app, it loads just fine and does not look like it's super low quality. The code i am using to load and draw my images is simple:

//Code for initializing the Bitmap
Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.none), (int) (canvas.getWidth() * compression), (int) (canvas.getHeight() * compression), true);
//...
//Code for drawing this Bitmap
canvas.drawBitmap(bitmap, null, new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), null);

If nothing in the code tells you what is wrong, i made an image comparing what the image actually looks like on a computer or other image viewer, and what it looks like in the app. Top image is the app on the phone, bottom image is what the background image actually looks like. Notice the lines on the top image. What is up with that?

Upvotes: 5

Views: 17063

Answers (1)

Shine
Shine

Reputation: 3818

question is somewhat similar to Bad image quality after resizing/scaling bitmap

try disabling scaling, resize in an offscreen bitmap and make sure that Bitmap is 32 bits (ARGB888):

Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inDither = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap source = BitmapFactory.decodeResource(a.getResources(), path, options);

another good and complete answer about image scaling/processing can be found at Quality problems when resizing an image at runtime

Upvotes: 5

Related Questions