2014-09-09 5 views
1

ImageView에 이미지 (비트 맵)가 깜박 거리지 않습니다. setPixel(x, y, COLOR_VALUE)으로 뭔가를 변경하면 ImageView에서 일부 픽셀이 변경되어 픽셀이 변경된 곳에서 깜박 거리기 시작합니다.Android - ImageView에서 이미지 (비트 맵)를 변경하면 이미지가 깜박입니다.

public class Drawer extends ImageView { 

private Bitmap someBitmap; 

public void doSomeDrawing() { 
    for (int i = 0; i < 100; i = i + 2) { 
     someBitmap.setPixel(x, y, COLOR_VALUE); 
    } 
    setOnDraw(); 
} 

public void setOnDraw() { 
    this.setImageBitmap(someBitmap); 
} 
+0

시작을 설정해야합니다. 그것은 가치가 없으며 setter의 규칙 (매개 변수 포함)을 존중하지 않습니다. – Snicolas

+0

그래,하지만 그게 문제를 해결해서는 안된다. 그렇지? – csnewb

답변

0

비트 맵 복사본을 가져 와서 그려보십시오. 그런 다음 이전 비트 맵을 재활용하십시오.

픽셀을 설정하는 데 시간이 걸리고 UI 스레드에서이 작업을 수행하면 앱이 느려지고 깜박임이 발생할 수 있습니다. doSomething 시간은 얼마나 걸립니까?

+0

첫 번째 추측을 시도했지만 작동하지 않았습니다. 그것은 몇 밀리 초가 걸립니다, 나는 100-200 밀리 초 같아요. 계산이 끝날 때까지 화면을 잠그는 메커니즘이 없습니까? – csnewb

+1

100-200ms? 그것은 많이 있습니다. SurfaceView를 살펴보고 별도의 스레드에서 그래픽을 계산하고 모든 작업을 완료했을 때 캔버스에 그릴 수 있습니다. – Budius

관련 문제