2012-05-12 2 views
4

В моем приложении растровое изображение рисуется так, как если бы цвет был более низкого качества. Если я загружаю фоновое изображение с помощью приложения галереи, он загружается просто отлично и не выглядит так, как будто это супер низкое качество. Код, я использую, чтобы загрузить и использовать мои изображения прост:Проблемы с растровым изображением Android

//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); 

Если ничего в коде не говорит вам, что это неправильно, я сделал изображение, сравнивая то, что изображение на самом деле выглядит как на компьютере или другое средство просмотра изображений , и как он выглядит в приложении. 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?

+0

откровенно говоря, графический вывод большинства Android-файлов является парным, чтобы не беспокоиться, я не уверен, что пользователи будут жаловаться .. – ina

+0

@ina, может быть, это дерьмо, потому что люди принимают наполовину разрешенные решения в своем приложении;). –

ответ

5

вопрос несколько похож на Bad image quality after resizing/scaling bitmap

попробуйте отключить масштабирование, изменение размеров в закадровом растровом изображении и убедитесь, что Bitmap составляет 32 бит (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); 

еще один хороший и полный ответа о масштабирование/обработку изображения можно найти по адресу: Quality problems when resizing an image at runtime

+0

PLS скажите мне, что такое «a.getResources()» a =? –

+0

Активность :: getResources() – goRGon

+1

Даже с этим я по-прежнему получаю очень плохой результат ... – slott

Смежные вопросы