如何从android中的url获取位图?

我有一个像其中有一个图像的URI

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

如何使用这个uri来获取图像,但它返回null,请告诉我我错在哪里。

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

Solutions Collecting From Web of "如何从android中的url获取位图?"

这是一个简单的方法来做到这一点:

  try { URL url = new URL("http://...."); Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); } catch(IOException e) { System.out.println(e); } 

这应该做的伎俩:

 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 

不要忘记在清单中添加Internet权限。

好的,你正在试图从文件中获取位图? 标题说URL。 无论如何,当你从Android的外部存储获取文件,你不应该使用直接path。 而是调用getExternalStorageDirectory()像这样:

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

getExternalStorageDirectory()为您提供SD卡的path。 您还需要在清单中声明WRITE_EXTERNAL_STORAGE权限。