请在标记重复或关闭问题之前仔细阅读整个问题。
我想要围绕基础中心点旋转图像(具体来说是箭头图片)。
例如,开始时我的图像就像时钟上的秒针在9点。 假设我将该图像旋转30度,则应该看起来像时钟秒针在10处,如果旋转120度,则为1处的时钟秒针。
因此,我想要将该图像围绕其基础的中心(沿x轴)旋转。
如果我首先编写代码,则应该将什么作为枢轴(X和Y)?
或者第四段代码。
我想要围绕基础中心点旋转图像(具体来说是箭头图片)。
例如,开始时我的图像就像时钟上的秒针在9点。 假设我将该图像旋转30度,则应该看起来像时钟秒针在10处,如果旋转120度,则为1处的时钟秒针。
因此,我想要将该图像围绕其基础的中心(沿x轴)旋转。
如果我首先编写代码,则应该将什么作为枢轴(X和Y)?
imageView.setPivotX(1f);
imageView.setPivotY(1f);
imageView.setRotation(-30);
或者第二个代码
Matrix matrix = new Matrix();
imageView.setScaleType(ScaleType.MATRIX);
matrix.postRotate((float) 20, 0f, 0f);
imageView.setImageMatrix(matrix);
或第三方代码
Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.arrow_0_degree);
Matrix matrix = new Matrix();
matrix.postRotate(30);
Bitmap rotated = Bitmap.createBitmap(myImg, 0, 1, myImg.getWidth(), myImg.getHeight(), matrix, true);
imageView.setImageBitmap(rotated);
或者第四段代码。
final RotateAnimation rotateAnim = new RotateAnimation(0.0f, degree,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotateAnim.setDuration(0);
rotateAnim.setFillAfter(true);
imgview.startAnimation(rotateAnim);
为了更好地理解,添加了一张图像,该图像顺时针旋转了90度。
希望未来Google能够添加更多和更清晰的关于枢轴点的文档。
提前致谢。
setFillAfter (true)
有什么作用? - IgorGanapolsky