48

画像のあるようなウリがあります

file:///mnt/...............

この uri を使用して画像を取得する方法ですが、null が返されます。どこが間違っているか教えてください。

Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath());
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString());
4

3 に答える 3

142

これは、それを行うための簡単な 1 行の方法です。

    try {
        URL url = new URL("http://....");
        Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
    } catch(IOException e) {
        System.out.println(e);
    }
于 2012-08-06T15:30:46.793 に答える
23

これでうまくいくはずです:

public static Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
} // Author: silentnuke

マニフェストにインターネット許可を追加することを忘れないでください。

于 2012-08-06T15:26:39.283 に答える
2

さて、ファイルからビットマップを取得しようとしていますか? タイトルにURLが記載されています。とにかく、Android で外部ストレージからファイルを取得する場合は、直接パスを使用しないでください。代わりに、次のように getExternalStorageDirectory() を呼び出します。

File bitmapFile = new File(Environment.getExternalStorageDirectory() + "/" + PATH_TO_IMAGE);
Bitmap bitmap = BitmapFactory.decodeFile(bitmapFile);

getExternalStorageDirectory() は、SD カードへのパスを提供します。また、マニフェストで WRITE_EXTERNAL_STORAGE 権限を宣言する必要があります。

于 2012-08-06T20:57:36.050 に答える