有时候当我们的数据量过度的时候,这个时候如果我们频繁的调用onDraw()方法就会导致画面卡顿现象,闪屏现象,为了防止这种事情的发生,我们可以
使用双缓冲来加载资源显示。
/**
* 双缓冲技术实例
* @author b
*
*/
public
class
Surfaceview
extends
View
implements
Runnable{
private
Bitmap mBitmap;
private
Paint paint;
private
Bitmap sBitmap;
private
Canvas canvas;
public
Surfaceview(Context context) {
super
(context);
mBitmap = ((BitmapDrawable)getResources().getDrawable(R.drawable.b122)).getBitmap();
sBitmap = Bitmap.createBitmap(
1000
,
800
, Bitmap.Config.ARGB_8888);
canvas =
new
Canvas();
canvas.setBitmap(sBitmap);
paint =
new
Paint();
canvas.drawBitmap(mBitmap,
0
,
0
, paint);
new
Thread(
this
).start();
}
@Override
protected
void
onDraw(Canvas canvas) {
super
.onDraw(canvas);
canvas.drawBitmap(sBitmap,
0
,
0
, paint);
}
@Override
public
void
run() {
while
(!Thread.currentThread().isInterrupted()){
try
{
Thread.sleep(
100
);
}
catch
(Exception e) {
Thread.interrupted();
}
postInvalidate();
}
}
}