猿问

canvas.drawBitmap操作的时候,为什么要先对原Bitmap进行Bitmap.createBitmap操作

canvas.drawBitmap操作的时候,为什么要先对原Bitmap进行Bitmap.createBitmap操作,创建副本,而不是直接在原来的Bitmap上面操作。

比如实现一个缩放旋转

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180);  
Matrix matrix=new Matrix();
matrix.postScale(0.8f, 0.8f);
matrix.postRotate(45);
Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),bmp.getHeight(),matrix,true);
canvas.drawColor(Color.BLACK); 
canvas.drawBitmap(dstbmp, 10, 10, null);

为什么要创建一个dstbmp副本了,然后在上面操作,而不是直接操作bmp 呢

China丰
浏览 3609回答 1
1回答

为梦想努力_冬

Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),bmp.getHeight(),matrix,true);主要是这里对Bitmap进行了加工处理,你看这一部分Matrix matrix=new Matrix();matrix.postScale(0.8f, 0.8f);matrix.postRotate(45);都是一些要改变的参数。
随时随地看视频慕课网APP

相关分类

Android
我要回答