android o que deve ser o ponto de rotação para girar a imagem em torno do centro da base
Por favor, leia a pergunta toda cuidadosamente antes de marcar a duplicação ou fechá-la
Quero girar uma imagem (especificamenteimagem de seta) em torno do ponto central da base.
por exemplo. No início, minha imagem será como o ponteiro dos segundos em um relógio no 9. E suponha que se eu girar essa imagem em 30 graus, ela deve parecer o ponteiro dos segundos em 10 e se 120 graus o ponteiro dos segundos no 1.
Então, eu quero girar a imagem em torno do centro (ao longo do eixo x) da base.
Então, o que devo passar como pivô (X e Y) se primeiro codificar
imageView.setPivotX(1f);
imageView.setPivotY(1f);
imageView.setRotation(-30);
ou segundo código
Matrix matrix = new Matrix();
imageView.setScaleType(ScaleType.MATRIX);
matrix.postRotate((float) 20, 0f, 0f);
imageView.setImageMatrix(matrix);
ou terceiro código
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);
ou quarto código
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);
Adicionada uma imagem para melhor compreensão, que girava 90 graus no sentido horário.
E espero que no futuro o Google adicione mais documentação clara e clara sobre os pontos de articulação.
Desde já, obrigado.