canvas详解

https://www.jianshu.com/p/762b490403c3



bitmap=createScaleBitmap(bitmap,width/2+1,height/2+1);
Bitmap bitmap1= Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
Canvas canvas=new Canvas(bitmap1);
canvas.drawBitmap(bitmap,0,0,null);
canvas.drawBitmap(bitmap,0,height/2,null);
canvas.drawBitmap(bitmap,width/2,0,null);
canvas.drawBitmap(bitmap,width/2,height/2,null);
imageView.setImageBitmap(bitmap1);


protected void bitmapScale(float x, float y) {
   // ��ΪҪ��ͼƬ�Ŵ�����Ҫ���ݷŴ�ijߴ����´���Bitmap
   Bitmap afterBitmap = Bitmap.createBitmap(
         (int) (baseBitmap.getWidth() * x),
         (int) (baseBitmap.getHeight() * y), baseBitmap.getConfig());
   Canvas canvas = new Canvas(afterBitmap);
   // ��ʼ��Matrix����
   Matrix matrix = new Matrix();
   // ���ݴ���IJ����������ű���
   matrix.setScale(x, y);
   // �������ű�������ͼƬdraw��Canvas��
   canvas.drawBitmap(baseBitmap, matrix, paint);
   iv_after.setImageBitmap(afterBitmap);
}

/**
 * ��бͼƬ
 */
protected void bitmapSkew(float dx, float dy) {
   // ����ͼƬ����б������������ͼƬ�Ĵ�С��
   Bitmap afterBitmap = Bitmap.createBitmap(baseBitmap.getWidth()
         + (int) (baseBitmap.getWidth() * dx), baseBitmap.getHeight()
         + (int) (baseBitmap.getHeight() * dy), baseBitmap.getConfig());
   Canvas canvas = new Canvas(afterBitmap);
   Matrix matrix = new Matrix();
   // ����ͼƬ��б�ı���
   matrix.setSkew(dx, dy);
   canvas.drawBitmap(baseBitmap, matrix, paint);
   iv_after.setImageBitmap(afterBitmap);
}

/**
 * ͼƬ�ƶ�
 */
protected void bitmapTranslate(float dx, float dy) {
   // ��Ҫ�����ƶ��ľ���������ͼƬ�Ŀ���ͼ��С
   Bitmap afterBitmap = Bitmap.createBitmap(
         (int) (baseBitmap.getWidth() * dx),
         (int) (baseBitmap.getHeight() * dy), baseBitmap.getConfig());
   Canvas canvas = new Canvas(afterBitmap);
   Matrix matrix = new Matrix();
   // �����ƶ��ľ���
   matrix.setTranslate(dx, dy);
   canvas.drawBitmap(baseBitmap, matrix, paint);
   iv_after.setImageBitmap(afterBitmap);
}

/**
 * ͼƬ��ת
 */
protected void bitmapRotate(float degrees) {
   // ����һ����ԭͼһ����С��ͼƬ
   Bitmap afterBitmap = Bitmap.createBitmap(baseBitmap.getWidth(),
         baseBitmap.getHeight(), baseBitmap.getConfig());
   Canvas canvas = new Canvas(afterBitmap);
   Matrix matrix = new Matrix();
   // ����ԭͼ������λ����ת
   matrix.setRotate(degrees, baseBitmap.getWidth() / 2,
         baseBitmap.getHeight() / 2);
   canvas.drawBitmap(baseBitmap, matrix, paint);
   iv_after.setImageBitmap(afterBitmap);
}























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值