1

我正在尝试从 android-gpuImage 旋转图像,但旋转不起作用。这是代码

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 方法:

@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我已经加载了用户从图像 piker 意图中选择的图像。单击按钮后,我尝试旋转mGPUImageView但视图显示为空白。

下面是我尝试旋转时的图像mGPUImageView

加载图像后查看

当我旋转时:

在此处输入图像描述

我怎样才能实现轮换。请帮忙。

4

1 回答 1

1

整数标志 = 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);
    }
}
于 2016-07-26T12:19:37.097 回答