Я пытался реализовать функцию, в которой пользователь может поворачивать изображение. Я думал об использовании RotateAnimation для него нравится так:RotateAnimation вращается два раза, а не один раз
rotateRight.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//create a new bitmap that is rotated 90 deg
Matrix mat = new Matrix();
mat.postRotate(90);//90 degree rotation right
Bitmap bMapRotate = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), mat, true);//create a new bitmap with the rotated angle
bmp = bMapRotate; //save the rotated bitmap as the bitmap that will be uploaded
RotateAnimation rotateAnim = new RotateAnimation(0f, 90f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rotateAnim.setDuration((long)100);
rotateAnim.setRepeatCount(0);
rotateAnim.setFillAfter(true);//maintains the rotation
previewImage.startAnimation(rotateAnim);
previewImage.setImageBitmap(bmp);//set the bitmap to the rotated one (if I don't do this, the animation will always start from the initial position
}
});
Однако, когда я делаю это изображение поворачивается два раза в первый раз нажата кнопка. Каждый раз после этого изображение вращается должным образом. Другое дело, следует отметить, что изображение сохраняется в ВМР имеет право вращения 90deg от чего ImageView (previewImage) показывает
Позвольте мне знать, если я могу дать вам, ребята, никаких дальнейших подробностей.
Просто добавляя что-то, когда вы вызываете ресурс, убедитесь, что вы его правильно назовете. В примере я дал вам cals изображение «someimage.png», если это напрямую связано с файлом src. – saclyr
Я думаю, что с Android я не могу использовать AffineTrasform – Sree