Androidファイルマネージャーから取得した画像ファイルのパスが間違っています

肉屋のほうき

私のアプリケーションでは、画像を開き、ファイルマネージャーを使用してアプリに「ロード」したいと思います。私はすでにIntent.ACTION_GET_CONTENTonActivityResult()メソッドを使用てそれを行いました私が得る道を除いて、すべてがうまくいきます。奇妙な形式で、画像を表示できませんImageView

public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            mFileManagerString = selectedImageUri.getPath();
            showPreviewDialog(mFileManagerString);
        }
}

ここに mFileManagerString = /document/image:19552

ImageView:に画像を表示するメソッドを呼び出すと

public void setPreviewIV(String pPath) {
        Bitmap bmImg = BitmapFactory.decodeFile(pPath);
        receiptPreviewIV.setImageBitmap(bmImg);
}

次のエラーが発生します。

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /document/image:19552: open failed: ENOENT (No such file or directory)

画像への適切なパスを取得して、ImageView?で表示できるようにする方法

CommonsWare

画像への適切なパスを取得する方法

あなたはすでにそれを持っています。それはあるUriに渡されることonActivityResult()を経由してIntentパラメータ。それgetPath()から抜け出すのUriは無意味です。これ/questions/33827687/wrong-image-file-path-obtained-from-android-file-managerは、Webブラウザにそのパスを含むURLが表示されるという理由だけで、それがハードドライブ上のパスである考えるのと似ています。

さらに、現在のコードはBitmapメインアプリケーションスレッドでをロードおよびデコードしています。その作業が行われている間、UIがフリーズするため、これを行わないでください。

Androidで利用できる多くの画像読み込みライブラリのいずれかを使用することをお勧めしますすべての適切なもの(Picasso、Universal Image Loaderなど)はUri、入力として受け取るだけでなく、画像をバックグラウンドスレッドにロードしImageView、ビットマップの準備ができたときにのみメインアプリケーションスレッドに適用します。

、何らかの理由で、あなたはこの自分で、使用しなければならないと感じた場合はContentResolver、そのopenInputStream()取得するInputStreamことで表現されたデータのためにUriその後、にそれを渡すdecodeStream()BitmapFactoryこれらすべてをバックグラウンドスレッド(たとえば、doInBackground()AsyncTask)で実行してBitmapから、ImageViewをメインアプリケーションスレッド(たとえば、onPostExecute()AsyncTask)に適用します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

GRUBが間違ったパーティションから設定ファイルを取得しています

分類Dev

ファイルマネージャから選択したファイルのファイルパスを取得します

分類Dev

Chocolateyパッケージの作成に間違った.exeファイルを使用していますか?

分類Dev

IONIC3-ファイルマネージャーから選択したときにPDFのファイルパスを取得したい

分類Dev

Webpackコード分割 'チャンクの読み込みに失敗しました'エラーファイルパスが間違っています

分類Dev

サーバー上のコードを介してマクロを実行する:Excelファイルへのパスが間違っていますか?

分類Dev

ファイルパスの構文が間違っているため、FileReaderは例外をスローしますか?

分類Dev

Androidファイルマネージャーから直接HTMLページを開くときに背景画像の絶対パスを正しく設定する方法

分類Dev

パッケージリストファイルには、MySQLの間違ったバージョンがリストされています

分類Dev

スクリプトのマージ...ファイルオブジェクトのタイプが間違っていますか(多分)?

分類Dev

Laravelウェイジェネレーターが間違ったパスでファイルを作成する

分類Dev

UIからの読み取り中にファイルパスが間違っています

分類Dev

UIからの読み取り中にファイルパスが間違っています

分類Dev

Androidのスキャナーを使用してファイルからNullPointerExceptionを読み取っていますか?

分類Dev

パンダのファイルパスが間違っています

分類Dev

ファイルマネージャの外部からファイルをクリックして開くときにファイルマネージャが開かないようにするにはどうすればよいですか?

分類Dev

16.04 から 18.04 への更新以降、ファイル マネージャーでいくつかのファイルをマークして開いたときに、Audacious プレーヤーがオーディオ ファイルのリストを再生しません。

分類Dev

java.lang.UnsupportedClassVersionError:.classファイルのバージョン番号が間違っていますか?

分類Dev

Maven、JavaFX、およびクラスファイルのバージョンが間違っています

分類Dev

配列からファイルマネージャのファイルに画像を保存する

分類Dev

apache Webサイトからファイルをアップロードした後、404ファイルマネージャーからアクセスできます。フォルダとファイルのアクセス許可は644です

分類Dev

DEBファイルがインストールされていません、アーキテクチャが間違っていますか?

分類Dev

ファイルマネージャでファイルの説明テキストを追加しますか?

分類Dev

')'の近くの構文が正しくありません。DBeaverファイルとJavaマッパーファイルの両方で実行しているときにSQLクエリが間違っていますか?

分類Dev

間違ったマージ後のファイルの削除

分類Dev

パーサーでエラーをコンパイルします。入力ファイルが間違っていると思いますが、何が間違っているのかわかりません。

分類Dev

Androidで間違ったネットワークインターフェースを取得していますか?

分類Dev

パンダ:csvファイルからデータをインポートする際の列名が間違っています

分類Dev

誤って間違ったブランチにマージしてしまいました。これらの不要なファイルを削除する方法はありますか?

Related 関連記事

  1. 1

    GRUBが間違ったパーティションから設定ファイルを取得しています

  2. 2

    ファイルマネージャから選択したファイルのファイルパスを取得します

  3. 3

    Chocolateyパッケージの作成に間違った.exeファイルを使用していますか?

  4. 4

    IONIC3-ファイルマネージャーから選択したときにPDFのファイルパスを取得したい

  5. 5

    Webpackコード分割 'チャンクの読み込みに失敗しました'エラーファイルパスが間違っています

  6. 6

    サーバー上のコードを介してマクロを実行する:Excelファイルへのパスが間違っていますか?

  7. 7

    ファイルパスの構文が間違っているため、FileReaderは例外をスローしますか?

  8. 8

    Androidファイルマネージャーから直接HTMLページを開くときに背景画像の絶対パスを正しく設定する方法

  9. 9

    パッケージリストファイルには、MySQLの間違ったバージョンがリストされています

  10. 10

    スクリプトのマージ...ファイルオブジェクトのタイプが間違っていますか(多分)?

  11. 11

    Laravelウェイジェネレーターが間違ったパスでファイルを作成する

  12. 12

    UIからの読み取り中にファイルパスが間違っています

  13. 13

    UIからの読み取り中にファイルパスが間違っています

  14. 14

    Androidのスキャナーを使用してファイルからNullPointerExceptionを読み取っていますか?

  15. 15

    パンダのファイルパスが間違っています

  16. 16

    ファイルマネージャの外部からファイルをクリックして開くときにファイルマネージャが開かないようにするにはどうすればよいですか?

  17. 17

    16.04 から 18.04 への更新以降、ファイル マネージャーでいくつかのファイルをマークして開いたときに、Audacious プレーヤーがオーディオ ファイルのリストを再生しません。

  18. 18

    java.lang.UnsupportedClassVersionError:.classファイルのバージョン番号が間違っていますか?

  19. 19

    Maven、JavaFX、およびクラスファイルのバージョンが間違っています

  20. 20

    配列からファイルマネージャのファイルに画像を保存する

  21. 21

    apache Webサイトからファイルをアップロードした後、404ファイルマネージャーからアクセスできます。フォルダとファイルのアクセス許可は644です

  22. 22

    DEBファイルがインストールされていません、アーキテクチャが間違っていますか?

  23. 23

    ファイルマネージャでファイルの説明テキストを追加しますか?

  24. 24

    ')'の近くの構文が正しくありません。DBeaverファイルとJavaマッパーファイルの両方で実行しているときにSQLクエリが間違っていますか?

  25. 25

    間違ったマージ後のファイルの削除

  26. 26

    パーサーでエラーをコンパイルします。入力ファイルが間違っていると思いますが、何が間違っているのかわかりません。

  27. 27

    Androidで間違ったネットワークインターフェースを取得していますか?

  28. 28

    パンダ:csvファイルからデータをインポートする際の列名が間違っています

  29. 29

    誤って間違ったブランチにマージしてしまいました。これらの不要なファイルを削除する方法はありますか?

ホットタグ

アーカイブ