surfaceview相关显示问题

最近做的项目会频繁的刷新bitmap,第一时间想到的是用surfaceview,使用的过程中也是遇到了诸多问题,特此记录一下

1.自定义surfaceview,由于每次绘制的图像大小不一致,所以当刷新小图的时候,底下总会显示最后一张大图,可能是因为它本身的双缓存机制吧,具体原因没细查,解决办法就是每次绘制之前进行清屏操作,代码如下:

Canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

2.bitmap图片的缩放

private static Bitmap newBitmap(Bitmap bitmap) {
    Matrix matrix = new Matrix();
    matrix.postScale(4f, 4f); //长和宽放大缩小的比例
    Bitmap resizeBmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
    return resizeBmp;
}

3.surfaceView所在的activity的theme是Dialog,设置方式如下:

4.当surfaceView绘制在dialog上的时候显示会有一层雾蒙蒙的感觉,是因为dialog覆盖在了surfaceview上,解决办法是调用如下代码,将surfaceview置顶显示:

surfaceView.setZOrderOnTop(true);

5.设置surfaceview置顶之后它会一直显示在顶层,如果说在某个过程中想隐藏该surfaceview,并显示其他控件时,需要调用如下代码,亲测有效哦!

faceView.setZOrderMediaOverlay(true);

 

至此,有关surfaceView涉及的问题就都写完了,以后有其他问题在更新

 

 

 

你可能感兴趣的:(surfaceview相关显示问题)