双指缩放图片

布局=loadlayout
{
LinearLayout;
gravity=”center”;
layout_width=”fill”;
layout_height=”fill”;
{
ImageView;
layout_width=”100%w”;
id=”sftp”;
src=”图片”;
scaleType=”matrix”;
layout_height=”100%h”;
};
};

activity.setContentView(布局)
import”android.graphics.Matrix”
import “android.graphics.PointF”
import “android.util.FloatMath”

matrix = Matrix()
savedMatrix = Matrix()
mode = 0
startPoint = PointF()
midPoint = PointF();
oriDis = 1
distance=function( e)
local x = e.getX(0) – e.getX(1)
local y = e.getY(0) – e.getY(1)
return FloatMath.sqrt(x*x+y*y)
end
middle=function( e)
local x = e.getX(0) + e.getX(1)
local y = e.getY(0) + e.getY(1)
return PointF(x/2, y/2)
end
sftp.onTouch=function(v,e)
local a=e.getAction()&255
if a==MotionEvent.ACTION_DOWN then
matrix.set(v.getImageMatrix())
savedMatrix.set(matrix)
startPoint.set(e.getX(), e.getY())
mode = 1
end
if a==MotionEvent.ACTION_POINTER_DOWN then
oriDis = distance(e);
if oriDis > 10 then
savedMatrix.set(matrix);
midPoint = middle(e)
mode = 2
end
end
if a==MotionEvent.ACTION_POINTER_UP then
mode = 0
end
if a==MotionEvent.ACTION_MOVE then
if (mode == 1) then
matrix.set(savedMatrix);
matrix.postTranslate(e.getX() – startPoint.x, e.getY() – startPoint.y);
elseif (mode == 2) then
newDist = distance(e);
if (newDist > 10) then
matrix.set(savedMatrix);
scale = newDist / oriDis
matrix.postScale(scale, scale, midPoint.x, midPoint.y);
end
end
end
v.setImageMatrix(matrix)
return true
end
–双指缩放图片
–拿走记得吱一声

图片[1]-双指缩放图片-煜龙论坛观天下

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容