Android中图片由Matrix变化后坐标的改变

最近在进行图片处理学习,在网上找了相关的代码,实现了支持图片的放大、缩小、拖动的功能,但想要实现类似地图的,点击定位按钮,图片自动移动到定位点的功能,总是不得要领。但思路总是有的,记录图片刚初始化的点,依据图片变化的处理记录处理的操作,然后以后的每个点都做相应的操作。好麻烦啊,刚想到的第二秒,就放弃了这个想法。

之后,我想到了Matrix,图片的每次变化,可以根据matrixValues来获取,一下子简洁太多了。

代码:

// 存储Matrix矩阵的9个值
float[] matrixValues = new float[9];
// 变化的Matrix矩阵
Matrix mScaleMatrix = new Matrix();

mScaleMatrix.getValues(matrixValues);

// 变化的倍数
float mscale_x = matrixValues[Matrix.MSCALE_X];
float mtrans_x = matrixValues[Matrix.MTRANS_X];     
float mscale_y = matrixValues[Matrix.MSCALE_Y];
float mtrans_y = matrixValues[Matrix.MTRANS_Y];

// 图片原始点
float x=0;
float y=0;

// 变化后的点
x = x * mscale_x + 1 * mtrans_x;
y = y * mscale_y + 1 * mtrans_y;

参考
Matrix原理

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值