【问题标题】:Rotating image in Android with a button使用按钮在Android中旋转图像
【发布时间】:2015-11-10 05:09:17
【问题描述】:

我在视图上有一个带有几个按钮的图像。其中一个按钮将图像向下移动。它通过在上边距添加 1 px 来向下移动图像。这是代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button) findViewById(R.id.button1);
        final ImageView image = (ImageView) findViewById(R.id.image1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ((ViewGroup.MarginLayoutParams) image.getLayoutParams()).topMargin += 1;
                image.requestLayout();
            }
        });
    }

现在,我希望能够旋转图像。就像我现在的代码一样,我想要一个按钮,当按下按钮时,图像会旋转。但是我该怎么做呢?

【问题讨论】:

标签: java android rotation


【解决方案1】:
 Bitmap source; //Declare Global
 float angle=0; //Declare Global


Button button = (Button) findViewById(R.id.button1);
        final ImageView image = (ImageView) findViewById(R.id.image1);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
          angle+=70;
          Bitmap rotatedImage=rotateImage(your_image_source,angle);
          img.setImageBitmap(rotatedImage);
            }
        });

public static Bitmap rotateImage(Bitmap sourceImage, float angle)
    {
        Matrix matrix = new Matrix();
        matrix.postRotate(angle);
        return Bitmap.createBitmap(sourceImage, 0, 0, sourceImage.getWidth(), sourceImage.getHeight(), matrix, true);
    }

你可以检查

  1. Image Rotation in ImageView (Android)
  2. When click a button rotate image clockwise in android

试试这个,希望对你有帮助。

【讨论】:

    【解决方案2】:
    1. 将 ImageView 的 scaleType 设置为矩阵
    2. 创建一个新的矩阵对象
    3. 单击旋转按钮时,调用矩阵对象的 postScale 方法
    4. 通过调用setImageMatrix方法将Matrix对象设置为ImageView

    imageView.setScaleType(ImageView.ScaleType.MATRIX);
    Matrix matrix = new Matrix();
    matrix.setRotate(degree); //you can also translate, scale
    imageView.setImageViewMatrix(matrix);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-03
      相关资源
      最近更新 更多