在lanscape模式下出现问题以在imageview中显示图像

时间:2020-02-12 18:08:00

标签: java android landscape-portrait

我正在制作一个带有摄像头访问权限的简单应用。在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);
   }
}

0 个答案:

没有答案
相关问题