Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中用按钮旋转图像_Java_Android_Rotation - Fatal编程技术网

Java 在Android中用按钮旋转图像

Java 在Android中用按钮旋转图像,java,android,rotation,Java,Android,Rotation,我在视图上有一个带有几个按钮的图像。其中一个按钮可向下移动图像。它通过向上边缘添加1像素来向下移动图像。代码如下: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button)

我在视图上有一个带有几个按钮的图像。其中一个按钮可向下移动图像。它通过向上边缘添加1像素来向下移动图像。代码如下:

@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();
            }
        });
    }
现在,我希望能够旋转图像。就像我现在的代码一样,我想要一个按钮,当按下按钮时,图像将旋转。但是我该怎么做呢

 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);
    }
你可以查一下

  • 试试这个,我希望它能帮助你

  • 将ImageView的scaleType设置为matrix
  • 创建新的矩阵对象
  • 单击“旋转”按钮时,调用矩阵对象的后缩放方法
  • 通过调用setImageMatrix方法将矩阵对象设置为ImageView


  • 您可以通过在该按钮上添加旋转动画来完成此操作,并在需要时启动该动画。选中此选项:
    imageView.setScaleType(ImageView.ScaleType.MATRIX);
    Matrix matrix = new Matrix();
    matrix.setRotate(degree); //you can also translate, scale
    imageView.setImageViewMatrix(matrix);