【问题标题】:Rotation of view in android-gpuimageandroid-gpuimage 中视图的旋转
【发布时间】:2016-07-26 20:19:37
【问题描述】:

我正在尝试从 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时的图像

当我旋转时:

如何实现轮换。请帮忙。

【问题讨论】:

  • 使用 setRotation(Rotation.ROTATION_90);而不是 setRotationX() 并使用 ROTATION_180,ROTATION_270 探索更多

标签: android image-processing rotation android-gpuimageview


【解决方案1】:

int 标志 = 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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 2015-05-30
    相关资源
    最近更新 更多