android - 图片不会从网络加载
问题描述
我正在尝试显示从另一个站点获取的随机 URL 中的图像,但是运行时图像不显示,这是我尝试过的代码(imageView 在 onCreate 上方声明,并且在 onCreate 中调用 parse)。
void parse(String url){
final RequestQueue requestQueue = Volley.newRequestQueue(cat.this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
String message;
@Override
public void onResponse(JSONObject response) {
try{
message=response.getString("url");
imageView.setImageBitmap(getBitmap(message));
}
catch (JSONException e){ e.printStackTrace(); }
}
}, error -> {
error.printStackTrace();
requestQueue.stop();
});
requestQueue.add(jsonObjectRequest);
requestQueue.stop();
}
public Bitmap getBitmap(String src) {
try {
java.net.URL url = new java.net.URL(src);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
return BitmapFactory.decodeStream(input);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
解决方案
使用加载图像服务,如 glide、fresco、picasso
千倍比这种方式更容易和更快
推荐阅读
- swift - Swift Rest Api 调用麻烦
- sql-server - T-SQL 聚集索引寻求性能
- python - 使用 VS Code for Python 时,是否有像 MATLAB 中的 Workspace 功能?
- c# - NFC读卡器,卡插入/弹出观察器
- python - 由于构建错误,无法在 JupyterLab 中添加扩展
- python - 在 Python 上添加列表
- python - 加载/测试先前训练和保存的神经网络 Python
- angular - 如何在 Angular 中有 2 条具有相同 url 的路由
- python - 无法使用已保存模型中的 tflite 转换器进行完整整数量化:ValueError:无法解析模型:pybind11::init():
- html - jQuery函数防止嵌套元素被读取