当我使用传感器更改屏幕方向时ImageView在android中变为空白?

时间:2016-01-26 06:49:52

标签: android imageview orientation

我在这里使用以下代码

这里的问题是使用以下代码我从图库中选择图像并在ImageView中设置但是当我旋转屏幕时,ImageView变为空白。那么给我一个如何保存状态和显示图像的解决方案。

 FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Create intent to Open Image applications like Gallery, Google Photos
            Intent galleryIntent = new Intent(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            // Start the Intent
            startActivityForResult(galleryIntent, RESULT_LOAD_IMG);
            //Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            //.setAction("Action", null).show();
            //Intent i = new Intent(MainActivity.this,firstActivity.class);
            //startActivity(i);
        }
    });


}

@Override
protected  void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    try {
        // When an Image is picked
        if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK
                && null != data) {
            // Get the Image from data

            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            // Get the cursor
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            // Move to first row
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            imgDecodableString = cursor.getString(columnIndex);
            cursor.close();
            ImageView imgView = (ImageView) findViewById(R.id.imgView);
            // Set the Image in ImageView after decoding the String
            imgView.setImageBitmap(BitmapFactory
                    .decodeFile(imgDecodableString));

        } else {
            Toast.makeText(this, "You haven't picked Image",
                    Toast.LENGTH_LONG).show();
        }
    } catch (Exception e) {
        Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG)
                .show();
    }

}

3 个答案:

答案 0 :(得分:0)

在清单活动代码中使用此功能。 机器人:screenOrientation =" nosensor"

答案 1 :(得分:0)

当您更改方向时,如果您没有添加

 android:configChanges="keyboardHidden|orientation|screenSize"
清单中的

- >活动将重新创建。请重新检查一下。

答案 2 :(得分:0)

时间旋转重启活动。必须防止重启。

在清单文件中的所需活动中添加以下代码

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"