作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我试图在固定点旋转图像,但图像在其左上角位置旋转。我试过 rotateAnimation 并且它工作正常,但问题是当我再次旋转我的图像时它开始从原始位置旋转。
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.arw2);
int w = bmp.getWidth();
int h = bmp.getHeight();
float px = 160,py = 215;
Matrix mtx = new Matrix();
mtx.setRotate(rAngle, px, py);
Bitmap rotatedBMP = Bitmap.createBitmap(bmp, 0, 0, w, h, mtx, true);
BitmapDrawable bmd = new BitmapDrawable(rotatedBMP);
myImageView.setImageDrawable(bmd);
我做错了什么?
最佳答案
如果我对您的问题的理解正确,您希望能够将图像旋转一次,然后从停止的地方旋转第二次。
您可以将图像旋转一次 30 度,然后再次旋转该图像 30 度(总共 60 度),但这会导致质量下降和中心点不正确。
更好的解决方案是简单地更改您每次使用的 rAngle
的值,并始终根据原始未旋转的源图像创建旋转的图像。因此,不是每次旋转(例如)30 度,而是旋转 30 度、60 度或 90 度等。
如果您希望每次单击按钮时图像旋转 30 度,您可以将单击次数存储在变量中,例如 buttonClicks
,然后设置 rAngle = buttonClicks * 30
并执行旋转。
关于android - 使用位图时如何使图像绕固定点旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3099877/
我有一个 fx1.15 表示法。底层整数值为 63183(寄存器值)。 现在,根据维基百科,完整长度为 15 位。该值不适合里面,对吧? 假设它是一个 fx1.16 值,我如何将它转换为人类可读的值?
我是一名优秀的程序员,十分优秀!