绘制Bitmap利用Matrix可以将Bitmap拉伸、平移、翻转、对称操作
1.首先是拉伸:需要调用Matrix.postScale()方法,第一个参数是沿x轴拉伸的倍数,第二个参数是沿y轴拉伸的倍数
2.平移:Matrix.postTranslate(),一个参数是沿x轴平移距离,第二个参数是沿y轴平移距离
3.旋转:Matrix.postRotate(),里面传入旋转角度
4.沿x轴对称,倒影效果: 首先是设置矩阵的值float matrix_values[]={1f,0f,0f,0f,-1f,0f,0f,0f,1f};然后Matrix.setValues(matrix_values);最后在绘制
5.沿y轴对称:首先是设置矩阵的值 float matrix_values[]={-1f,0f,0f,0f,1f,0f,0f,0f,1f};然后Matrix.setValues(matrix_values);最后在绘制
代码实现
public class BitmapView extends View {
private int width;
private int heigth;
private Bitmap mBitmap;
private Paint mPaint;
private Matrix matrix;
private int mBitmapWidth;
private int mBitmapHeight;
public BitmapView(Context context) {
super(context);
}
public BitmapView(Context context, AttributeSet attrs) {
super(context, attrs);
mBitmap= BitmapFactory.decodeResource(getResources(), R.mipmap.wei);
mPaint=new Paint();
matrix=new Matrix();
mBitmapWidth=mBitmap.getWidth();
mBitmapHeight=mBitmap.getHeight();
}
@Override
protected

本文介绍了如何使用Matrix对Bitmap进行拉伸、平移、旋转和对称操作,并详细讲解了如何在Bitmap上创建新图形,以及运用PorterDuffXfermode的不同模式进行混合效果。通过对PorterDuff.Mode的16种枚举值的解析,展示了它们在图形绘制中的具体应用。
最低0.47元/天 解锁文章
1315

被折叠的 条评论
为什么被折叠?



