端口CGAffineTransform从iOS到Android

端口CGAffineTransform从iOS到Android,第1张

概述我有下一组值: 0.439353, -0.073688, 0.078788, 0.439353, 139.500000, 72.000000Let's name the values: a, b, c, d, tx, ty 在iOS版本的应用程序中,这些值将发送到此对象see here 在我的Android应用程序中,我正在尝试这样的事情: Matrix mtx = new Matrix(); 我有下一组值:
0.439353,-0.073688,0.078788,0.439353,139.500000,72.000000Let's name the values: a,b,c,d,tx,ty

在iOS版本的应用程序中,这些值将发送到此对象see here

在我的AndroID应用程序中,我正在尝试这样的事情:

Matrix mtx = new Matrix();mtx.setValues(new float[] { a,ty,1});

从this帖子,在AndroID中,Matrix对象接受按照该顺序(a,ty)的值,而不是iOS版本(a,ty).

我的问题是旋转和缩放正确完成,但我有翻译部分的问题.它不会在屏幕上正确定位.任何人有什么想法我做错了什么?

编辑
我正在使用矩阵在画布上发布位图,就像这样

protected voID onDraw(Canvas canvas) {    // .....    canvas.drawBitmap(bmp,mtx,null);}
解决方法 原因是iOS基于中心位置计算矩阵,但是androID和web基于{0,0}位置.所以解决方案是您必须首先将位图移动到相对于屏幕密度的正确比例的中心位置,然后应用矩阵.我的工作良好的androID代码是:
Matrix matrixA = new Matrix();matrixA.postTranslate(-bitmapWIDth/2,-bitmapHeight/2);matrixA.postscale(screenWIDth/320,screenWIDth/320);Matrix matrixB = new Matrix();matrixB.setValues(new float[]{scale,-rotate,tX,rotate,scale,tY,0.0F,1.0F});matrixA.postConcat(matrixB);canvas.drawBitmap(bitmap,matrixA,null);

而网络CSS3代码是:

<img >
总结

以上是内存溢出为你收集整理的端口CGAffineTransform从iOS到Android全部内容,希望文章能够帮你解决端口CGAffineTransform从iOS到Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存