当我从图库android studio中打开图像时如何旋转图像

时间:2018-12-19 08:22:19

标签: android-studio

我需要从图库中打开图像,但该图像的方向不正确。我已经附加了当前代码,效果很好,但是唯一的问题是图像旋转了。

import de.hdodenhof.circleimageview.CircleImageView;

公共类MainActivity扩展了AppCompatActivity {

private static int RESULT_LOAD_IMAGE = 1;
Button button1;
TextView textView1, textView2;

CircleImageView circleImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    circleImageView = (CircleImageView) findViewById(R.id.profile_image);
    button1 = (Button) findViewById(R.id.btn_save);
    textView1 = (TextView) findViewById(R.id.txt_name);
    textView2 = (TextView) findViewById(R.id.txt_address);

    circleImageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent i = new Intent(
                    Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, RESULT_LOAD_IMAGE);
        }
    });
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();

        Bitmap bmp = null;
        try {
            //bmp = getBitmapFromUri(selectedImage);
            bmp = getBitmapFromUri(selectedImage);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        circleImageView.setImageBitmap(bmp);
    }
}

private Bitmap getBitmapFromUri(Uri uri) throws IOException {
    ParcelFileDescriptor parcelFileDescriptor = getContentResolver().openFileDescriptor(uri, "r");
    FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
    Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);
    parcelFileDescriptor.close();
    return image;
}

0 个答案:

没有答案