Полупрозрачные текстуры выглядят по-разному на разных телефонах Android.

Я использую opengl, новичок в этом. Недавно пытался визуализировать полупрозрачное облако в своем приложении, но оно выглядело по-разному на моем Galaxy S и моем HTC Desire HD :(.

Вот изображение облаков на обоих телефонах облаков на Galaxy S и Desire HD< /а>.

Я читал целую вечность, казалось, что Bitmap.config имеет какое-то отношение к проблеме, поэтому я добавил эту строку непосредственно перед загрузкой моих растровых изображений:

mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

Не было никакой разницы. Очень ценю любые советы, спасибо!

Редактировать:

Я добавил следующие две строки в свой метод onCreate, но текстура остается одинаковой на обоих телефонах.

    getWindow().setFormat(PixelFormat.RGBA_8888);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);

Редактировать:

Я попытался нарисовать то же изображение, используя статическую активность спрайта API demos, чтобы исключить ошибки в моем коде, но получил ту же проблему.

Редактировать:

Также попытался нарисовать одну и ту же текстуру на HTC Sensation и LG Optimus 2x. Та же проблема на HTC Sensation, что и на Desire HD, на LG Optimus 2x проблем нет.


person hohoho    schedule 24.02.2012    source источник


Ответы (2)


Попробуйте включить сглаживание, вызвав gl.glEnable(GL10.GL_DITHER) (или эквивалент версии gl, которую вы используете, если не GL10).

Изменить: и если это не сработает, также вызовите getWindow().setFormat(PixelFormat.RGBA_8888); в своем методе onCreate().

person Jave    schedule 24.02.2012
comment
Спасибо за ответ, я пытался включить дизеринг, только что попробовал еще раз, проблема не решается. - person hohoho; 24.02.2012
comment
Привет, я пытался добавить это, а также getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);. Никакого эффекта для обоих. - person hohoho; 24.02.2012
comment
Странно, тогда я не знаю, в чем может быть проблема :( - person Jave; 24.02.2012

Этот вопрос может быть связан с вашим. Возможно, у вас установлена ​​неофициальная сборка на HTC Desire HD.

Также попробуйте следующие настройки (вызовите их в методе Activity.onCreate(..)):

getWindow().setFormat(PixelFormat.RGBA_8888);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DITHER);
person a.ch.    schedule 24.02.2012
comment
Текстура не меняется, я все равно использую официальную сборку - person hohoho; 24.02.2012