2017-01-13 7 views
5

Я периодически наблюдаю за странными графическими артефактами в своем приложении, как показано ниже. Это screengrab от Samsung Galaxy S3. Я наблюдал это только на этом телефоне. Я запустил приложение на Samsung Galaxy Tab S4 и HTC One и никогда не наблюдал эту проблему ни на одном из них, хотя, по общему признанию, в основном я использую S3 для разработки.Странные графические артефакты в приложении для Android

Я считал, что проблема может заключаться в каком-то конфликте параллелизма при рисовании на Canvas (я использую базовые методы рендеринга Android, не OpenGL или что-то еще), поскольку я могу четко распознавать повторяющиеся элементы других элементов пользовательского интерфейса , поэтому я синхронизировал весь код, который рисует или взаимодействует с Canvas, и я все еще, наблюдая, как это происходит.

Он проясняется после 30-90 секунд, что может быть связано с регулярной операцией по очистке памяти, которую он выполняет - возможно, это проявление низкой доступной памяти?

Если бы у меня было достаточно репутации, я бы вложил в нее довольно большую щедрость. Любая помощь оценивается. Надеюсь, кто-то узнает эту конкретную проблему.

Strange graphics artefacts

+0

Вы пытались выполнить рисунок с аппаратным слоем на [ 'View # setLayerType (View.LAYER_TYPE_HARDWARE, NULL)'] (https: // разработчик. android.com/reference/android/view/View.html#LAYER_TYPE_HARDWARE)? – azizbekian

+0

Извините за поздний ответ. Я отдам это. Может потребоваться некоторое время, чтобы доказать, что графические ошибки больше не происходят, но если они исправят все, я обязательно удостоекю вам награду. – HomerPlata

+0

Будет опубликован как ответ. – azizbekian

ответ

2

Применение аппаратных слоев:

setLayerType(View.LAYER_TYPE_HARDWARE, null); 
+0

Привет, Азиз, я все еще получаю случайные проблемы с графикой с предложенным исправлением - хотя я думаю, что это сделало дисплей немного приятнее, поэтому я по-прежнему буду голосовать за ваш ответ. Благодарю. – HomerPlata

+0

Я наградил щедрость, так как я только понял, что она исчезла бы в эфире, если бы не я, но я все еще ищу ответ. – HomerPlata