我正在制作一个简单的国际象棋应用程序,我需要旋转一个imageView以方便用户,当我使用这个方法时,我的ImageVIew的pawn变大了。
ImageView pawn;
pawn = (ImageView) findViewById (R.id.pawn);
pawn.setScaleType(ScaleType.MATRIX);
Matrix rotationMatrix = new Matrix();
rotationMatrix.postRotate(180f, pawn.getDrawable().getBounds().width()/2,
pawn.getDrawable().getBounds().height()/2);
pawn.setImageMatrix(rotationMatrix);
我也尝试将我的角度设置为“0f”而不是“180f”,我只能看到左上角图像的1/4,我认为它与ScaleType.MATRIX或其他东西有关,我被困。救救我!
答案 0 :(得分:1)
实际上我正在使用一个新函数myRotate(),但它们仍然是一个你可以使用的问题" getResources()"在main函数内部,因为它不是静态的。
public void rotate(ImageView im, int id, int degree){
Bitmap bMap;
Matrix matrix;
//Decode Image using Bitmap factory.
bMap = BitmapFactory.decodeResource(getResources(), id);
//Create object of new Matrix.
matrix = new Matrix();
//set image rotation value to "degree" degrees in matrix.
matrix.postRotate(degree);
//Create bitmap with new values.
Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0,
bMap.getWidth(), bMap.getHeight(), matrix, true);
//put rotated image in ImageView.
im.setImageBitmap(bMapRotate);
}