Имам scrollview и вложих няколко персонализирани SurfaceView
вътре. Докато превъртам, фонът SurfaceView
започва да трепти черен. Проучвам това поне един ден и не мога да намеря решение. Опитах се да внедря решението на тази тема: http://android-coding.blogspot.ca/2012/01/flickering-problems-due-to-double.html, но не намери успех.
С моя SurfaceView се опитвам да нарисувам текст и изтеглено изображение на емоджи. Първоначално използвах персонализиран изглед, но бях блокиран, след като се опитах да изтегля растерно изображение в нишката на потребителския интерфейс и получих NetworkOnMainThreadException
. Така че се опитах да използвам AsyncTask
за цялата част onDraw() на изгледа. Изгледът обаче остана празен и не можах да го актуализирам, след като AsyncTask
завърши. Опитах се да извикам invalidate() на изгледа, след като AsyncTask
завърши, но това доведе до безкраен цикъл на onDraw(). След това създадох булева променлива, за да спра този цикъл и да изобразя изгледа само веднъж, но завърши по същия начин, както започнах: празен изглед.
Сега се опитвам да използвам SurfaceView
, защото чета
Една от целите на този клас е да осигури повърхност, в която вторична нишка може да се визуализира в екрана
и реших, че трябва да го използвам, защото използвам отделна нишка за изтегляне на растерно изображение.
Сега, когато внедрих SurfaceView
, той не работи по начина, по който искам, тъй като мига в черно, докато превъртам. Записах го тук: https://youtu.be/o5j9s4XF65E
Поставете грешен код тук: https://pastebin.com/g61aSNM2
Въпросите, които задавам:
Трябва ли да използвам
SurfaceView
за тази цел? Ако не, тогава какъв би бил правилният начин за прилагане на това?Трябва ли да използвам
Thread
вместоAsyncTask
, за да изтегля растерно изображение от url?Защо SurfaceView трепти и какво мога да направя по въпроса?