自定义View之Bitmap/在Bitmap上绘制新的图形/Xfermode属性

本文介绍了如何使用Matrix对Bitmap进行拉伸、平移、旋转和对称操作,并详细讲解了如何在Bitmap上创建新图形,以及运用PorterDuffXfermode的不同模式进行混合效果。通过对PorterDuff.Mode的16种枚举值的解析,展示了它们在图形绘制中的具体应用。
摘要由CSDN通过智能技术生成

绘制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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值