Rotation of view in android-gpuimage

802 views Asked by At

I am trying to rotate the image in from android-gpuImage but the rotation is not working. Here is the code

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_document_edit);

    mGPUImageView = (GPUImageView) findViewById(R.id.gpuimage);

    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, REQUEST_PICK_IMAGE);

    seekBar = (SeekBar) findViewById(R.id.seekBar);
    seekBar.setOnSeekBarChangeListener(this);
    findViewById(R.id.btn_rotate).setOnClickListener(this);
    findViewById(R.id.button_save).setOnClickListener(this);

    GPUImageFilter filter = new GPUImageBrightnessFilter();
    switchFilterTo(filter);
    mGPUImageView.requestRender();

}

OnClick method for the rotation button:

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.btn_rotate:
            rotationAngle -= 90f;
            if (rotationAngle <= -360f)
                rotationAngle = 0f;
            mGPUImageView.setRotationX(rotationAngle);
            mGPUImageView.requestRender();
            break;
    }
}

OnActivityResult i have loaded the image that user selects from the image piker intent. And on click of the button I tried to rotate the mGPUImageView But the view shows blank.

Below is the image when I tried to rotate the mGPUImageView

View with image loaded

and when I rotated:

enter image description here

How can I implement the rotation. Please help.

1

There are 1 answers

0
Jitendra Singh On

int flag = 0;

public void setRotationRight() {
    if (flag == 0) {
        gpuImageView.setRotation(Rotation.ROTATION_90);
        flag = 1;
        AppConfig.log(TAG, "90, flag: " + flag);
    } else if (flag == 1) {
        gpuImageView.setRotation(Rotation.ROTATION_180);
        flag = 2;
        AppConfig.log(TAG, "180, flag: " + flag);
    } else if (flag == 2) {
        gpuImageView.setRotation(Rotation.ROTATION_270);
        flag = 3;
        AppConfig.log(TAG, "270, flag: " + flag);
    } else if (flag == 3) {
        gpuImageView.setRotation(Rotation.NORMAL);
        flag = 0;
        AppConfig.log(TAG, "normal, flag: " + flag);
    }
}

public void setRotationLeft() {
    if (flag == 0) {
        gpuImageView.setRotation(Rotation.ROTATION_270);
        flag = 1;
        AppConfig.log(TAG, "270, flag: " + flag);
    } else if (flag == 1) {
        gpuImageView.setRotation(Rotation.ROTATION_180);
        flag = 2;
        AppConfig.log(TAG, "normal, flag: " + flag);
    } else if (flag == 2) {
        gpuImageView.setRotation(Rotation.ROTATION_90);
        flag = 3;
        AppConfig.log(TAG, "180, flag: " + flag);
    } else if (flag == 3) {
        gpuImageView.setRotation(Rotation.NORMAL);
        flag = 0;
        AppConfig.log(TAG, "90, flag: " + flag);
    }
}