我有一个在线数据库,提供图像文件位置和文件名
我正在尝试更新Android屏幕中的imageview。这是我的代码获取图像和我尝试过的东西:
// successfully received product details
JSONArray productObj = json.getJSONArray("product"); // JSON Array
// get first product object from JSON Array
JSONObject product = productObj.getJSONObject(0);
// product with this pid found
// imageview
imageVw = (ImageView) findViewById(R.id.imageView1);
// display data in imageview
//imageStr = "http://somesite.com/images/" + product.getString("imagefile");
imageStr = "file://somesite.com/images/" + product.getString("imagefile");
//imgUri=Uri.parse("file:///data/data/MYFOLDER/myimage.png");
//imgUri=Uri.parse(imageStr);
//imageVw.setImageURI(imgUri);
imageVw.setImageBitmap(BitmapFactory.decodeFile(imageStr));
答案 0 :(得分:2)
如果你想获得存储在网络上的图像的位图,你可以做这样的事情。我个人使用名为ImageDownloader的库。该库易于使用。
您必须了解“URL是URI,但URI不是URL.URL是URI的特化,它定义给定资源的特定表示的网络位置。”所以,如果您的文件位置是http,那么您需要使用下面的函数来获取位图。我使用ImageDownloader库,因为它运行自己的线程,并管理一些缓存,以便更快地下载图像。
private Bitmap getImageBitmap(String url) {
Bitmap bm = null;
try {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
Log.e(TAG, "Error getting bitmap", e);
}
return bm;
}