如何从绝对路径而不是Android中的图库中选择图像

时间:2016-02-27 11:22:53

标签: android android-intent android-gallery

如何从绝对路径而不是Android中的图库中选择文件

我指的是wifi直接的这个例子

https://android.googlesource.com/platform/development/+/master/samples/WiFiDirectDemo/src/com/example/android/wifidirect/DeviceDetailFragment.java

从图库中选择文件的代码是

  protected static final int CHOOSE_FILE_RESULT_CODE = 20;
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                            intent.setType("image/*");
                            startActivityForResult(intent, CHOOSE_FILE_RESULT_CODE);

而不是这个,我想从像这样的绝对路径中选择一个图像

File f = new File(Environment.getExternalStorageDirectory() + "/test/testimage.jpg");

如何挑选这样的图像并将其提交给android?

2 个答案:

答案 0 :(得分:0)

  

从图库中选择文件的代码是

该代码没有"从图库中选择一个文件"。该代码向来自任何具有支持Uri的活动的应用请求ACTION_GET_CONTENT图像。虽然图库类型的应用可能支持Intent,但其他应用也可以。

  

如何挑选这样的图像并将其提交给android?

Android本身没有任何内容可以满足您的需求。但是,Android有很多file chooser librariesimage picker libraries。其中一个可能满足您的需求。

答案 1 :(得分:-1)

您可以使用此代码正常工作

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

    if (requestCode == CHOOSE_FILE_RESULT_CODE  && resultCode == RESULT_OK && data != null && data.getData() != null) {

        Uri uri = data.getData();

        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
            // Log.d(TAG, String.valueOf(bitmap));

            ImageView imageView = (ImageView) findViewById(R.id.imageView);
            imageView.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

希望它有用