在模拟器上运行时,应用程序不会从 HTTPS URL 加载图像。
示例代码:
URL url = new URL("https://someserver.com/photo.jpg");
mImageView.setImageBitmap(BitmapFactory.decodeStream(url.openStream()));
在实际设备上运行时,图像加载得很好。如果通过 HTTP 而不是 HTTPS 访问图像,模拟器也会加载图像。
我做错了什么还是这是一个已知问题?
在模拟器上运行时,应用程序不会从 HTTPS URL 加载图像。
示例代码:
URL url = new URL("https://someserver.com/photo.jpg");
mImageView.setImageBitmap(BitmapFactory.decodeStream(url.openStream()));
在实际设备上运行时,图像加载得很好。如果通过 HTTP 而不是 HTTPS 访问图像,模拟器也会加载图像。
我做错了什么还是这是一个已知问题?
使用下面的代码从 url 在 imageview 中显示图像。
ImageView mImageView = (ImageView)findViewById(R.id.mImageView1);
URL url = new URL(address);
InputStream content = (InputStream)url.getContent();
Drawable d = Drawable.createFromStream(content , "src");
mImageView.setImageDrawable(d);
并为此使用下面的代码。
try {
URL url = new URL(imageUrl);
HttpGet httpRequest = null;
httpRequest = new HttpGet(url.toURI());
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
HttpEntity entity = response.getEntity();
BufferedHttpEntity b_entity = new BufferedHttpEntity(entity);
InputStream input = b_entity.getContent();
Bitmap bitmap = BitmapFactory.decodeStream(input);
ImageView mImageView = (ImageView) findViewById(R.id.mImageView);
mImageView.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
Log.e("log", "bad url", t);
} catch (IOException e) {
Log.e("log", "io error", t);
}
这是一个受信任的 https 站点吗?如果不是,您将遇到连接问题。
看看这个...
http://droidos-coding.blogspot.com/2012/03/android-trusting-all-https-self-signed.html
试试这个代码:
imageView.setImageBitmap(LoadImageFromWebOperations(url));
private Bitmap LoadImageFromWebOperations(String url){
try{
String encodedurl = url.replace(" ", "%20");
InputStream is = (InputStream) new URL(encodedurl).getContent();
Bitmap d = BitmapFactory.decodeStream(is);
return d;
}catch (Exception e) {
e.printStackTrace();
// System.out.println("Exc="+e);
return null;
}
}
请确保您在清单文件中添加了互联网权限。这将帮助你这样做。