2015-08-19 2 views
0

Я пытаюсь повернуть изображение с помощью android-gpuImage, но вращение не работает. Вот кодВращение зрения в 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

View with image loaded

и когда я повернуты:

enter image description here

Как я могу осуществить поворот. Пожалуйста помоги.

+0

использование комплектRotation (Rotation.ROTATION_90); вместо setRotationX() и исследуйте больше с помощью ROTATION_180, ROTATION_270 –

ответ

0

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); 
    } 
} 
Смежные вопросы