android图像绘制(一)多种方法做图像镜像
程序员文章站
2023-12-14 00:00:58
在android中做图像镜像有很多方法,今天算是学习了! 两种方法如下: 复制代码 代码如下: //方法一 matrix matrix = new matrix(); ma...
在android中做图像镜像有很多方法,今天算是学习了!
两种方法如下:
//方法一
matrix matrix = new matrix();
matrix.postscale(leftorright, 1, bmpw/2, bmph/2);//前两个是xy变换,后两个是对称轴中心点
matrix.posttranslate(x, y);
canvas.drawbitmap(bmpluffy[0], matrix, paint);
//方法二
// canvas.save();
// canvas.scale(-1, 1, x + bmpluffy[0].getwidth() / 2, y + bmpluffy[0].getheight() / 2);
// canvas.drawbitmap(bmpluffy[0], x, y, paint);
// canvas.restore();
方法一,使用矩阵的方式(3x3)矩阵:
1、先使用postscale的方式将图片以点(bmpw/2,bmph/2)为中心,以x=bmpw/2为对称轴翻转;
2、使用posttranslate,将图片移到(x,y)坐标
方法二,画布翻转(略)
注意如下问题:
对于其中的bmpw和bmph是指所用图片的宽高,需要使用图片bmp.getwidth()和bmp.getheight()获取,
不能使用pc上看到的大小,否则可能会出现错位!
-----------------------------------------------------------------------
如果对matrix不是很了解的话,可以参考api文档,或网络文章
两种方法如下:
复制代码 代码如下:
//方法一
matrix matrix = new matrix();
matrix.postscale(leftorright, 1, bmpw/2, bmph/2);//前两个是xy变换,后两个是对称轴中心点
matrix.posttranslate(x, y);
canvas.drawbitmap(bmpluffy[0], matrix, paint);
//方法二
// canvas.save();
// canvas.scale(-1, 1, x + bmpluffy[0].getwidth() / 2, y + bmpluffy[0].getheight() / 2);
// canvas.drawbitmap(bmpluffy[0], x, y, paint);
// canvas.restore();
方法一,使用矩阵的方式(3x3)矩阵:
1、先使用postscale的方式将图片以点(bmpw/2,bmph/2)为中心,以x=bmpw/2为对称轴翻转;
2、使用posttranslate,将图片移到(x,y)坐标
方法二,画布翻转(略)
注意如下问题:
对于其中的bmpw和bmph是指所用图片的宽高,需要使用图片bmp.getwidth()和bmp.getheight()获取,
不能使用pc上看到的大小,否则可能会出现错位!
-----------------------------------------------------------------------
如果对matrix不是很了解的话,可以参考api文档,或网络文章