為了有效控制閃屏現象,可以使用雙緩衝來載入資源顯示。/** * 雙緩衝技術執行個體 * @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();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);//將緩衝區域的圖片顯示出來canvas.drawBitmap(sBitmap, 0, 0, paint);}@Overridepublic void run() {while(!Thread.currentThread().isInterrupted()){try {Thread.sleep(100);} catch (Exception e) {Thread.interrupted();}postInvalidate();}}}