Android-音视频(1):3种方式绘制图片

1.ImageView


这个应该很简单,直接看代码。

Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + File.separator + "test.jpg");
imageView.setImageBitmap(bitmap);

 

2.SurfaceView


可以通过 surfaceHolder.lockCanvas() 锁定画布进行绘制图片

SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surface_view);
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
    @Override
    public void surfaceCreated(SurfaceHolder surfaceHolder) {

        Paint paint = new Paint();
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);

        Bitmap bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + File.separator + "test.jpg");
        Canvas canvas = surfaceHolder.lockCanvas();  // 锁定当前surfaceView的画布
        canvas.drawBitmap(bitmap, 0, 0, paint); //绘制
        surfaceHolder.unlockCanvasAndPost(canvas); // 解除锁定并显示在界面
    }

});

3.自定义View


重写onDraw() 方法绘制图片

public class CustomView extends View {

    Paint paint = new Paint();
    Bitmap bitmap;

    public CustomView(Context context) {
        super(context);
        paint.setAntiAlias(true);
        paint.setStyle(Paint.Style.STROKE);
        bitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + File.separator + "test.jpg");  // 获取bitmap
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        if (bitmap != null) {
            canvas.drawBitmap(bitmap, 0, 0, paint); //绘制
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38261174/article/details/82862703