当前位置: 代码迷 >> Android >> SurfaceView背景闪烁有关问题
  详细解决方案

SurfaceView背景闪烁有关问题

热度:97   发布时间:2016-04-28 05:15:22.0
SurfaceView背景闪烁问题
首先我在surfaceCreated方法里面画背景图。
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
// (new Thread(this)).start() ;
my.start();
Canvas c = holder.lockCanvas();
Paint p = new Paint();
c.drawBitmap(BackgroundImage, 0, 0, p);
holder.unlockCanvasAndPost(c);

Log.v("surfaceCreated", "surfaceCreated");
}
然后我开启线程绘制图形的时候会出现背景图一直闪烁的问题。
如果我每次都在线程里面重新绘制背景,这样我就得记录下原先绘制过的图像坐标,然后再重新都画出来,这样会越画越慢。
刚刚接触几天SurfaceView,大家帮帮忙呀 分析下
------解决方案--------------------
重绘的时候的问题,不要直接用invalidate,这样必然闪烁,需要重绘的时候重新调用一次c.drawBitmap(BackgroundImage, 0, 0, p);
应该就可以了
------解决方案--------------------
引用:
首先我在surfaceCreated方法里面画背景图。
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
// (new Thread(this)).start() ;
my.start();
Canvas c = holder.lockCanv……

SurfaceView本身带了双缓冲了,你的draw()函数哪去了,
自写一个draw函数,callback得到canvas想在哪画就在哪画
刷新用新线程也行,调用draw()就行了