Android:通过旋转ImageView,它变得双倍

时间:2013-12-25 20:03:43

标签: android xml

我正在制作一个简单的国际象棋应用程序,我需要旋转一个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或其他东西有关,我被困。救救我!

1 个答案:

答案 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);
}