我正在制作一个带有摄像头访问权限的简单应用。在mainActivity中,我正在捕获图像并将其存储到内部存储中,然后在其他活动中,我将图像绕过路径显示到imageview中。在人像模式下一切正常,但是当我旋转手机(横向模式)时,imageview未显示图像。有时候我在横向模式下会得到空路径,而有时却没有。
MainActivity
public class MainActivity extends AppCompatActivity {
String currentImagePath = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button camera = findViewById(R.id.cameraBtn);
Button diplayImage = findViewById(R.id.gallery);
}
public void displayImage(View view)
{
Intent intent = new Intent(getApplicationContext(),DisplayImage.class);
intent.putExtra("image_path",currentImagePath);
startActivity(intent);
}
public void captureImage(View view)
{
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(cameraIntent.resolveActivity(getPackageManager()) != null)
{
File imageFile = null;
imageFile = getIMagefile();
if (imageFile != null)
{
Uri imageUri = FileProvider.getUriForFile(this,"com.example.atlanai.provider",imageFile);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
startActivityForResult(cameraIntent,1);
}
}
}
public File getIMagefile()
{
String timpstamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageName = "jpj_"+timpstamp+" ";
File stoargeDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File imageFIle = null;
try {
imageFIle = File.createTempFile(imageName,".jpj",stoargeDir);
} catch (IOException e) {
e.printStackTrace();
}
currentImagePath = imageFIle.getAbsolutePath();
return imageFIle;
}
}
DisplayImage.java
public class DisplayImage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_image);
ImageView imageView = findViewById(R.id.imageView);
String s = getIntent().getStringExtra("image_path");
Bitmap bitmap = BitmapFactory.decodeFile(s);
imageView.setImageBitmap(bitmap);
}
}