- 为了有效控制闪屏现象,可以使用双缓冲来加载资源显示。
- /**
- * 双缓冲技术实例
- * @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();
- }
- }
- }
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交