android - 如何显示凌空调用后获得的Base.64图像字符串
问题描述
我将图像作为 base64 字符串作为对 JSONArray 格式的 Web 服务调用的响应。我需要在我的 MainActivity 的 imageView 中显示它。我尝试使用Glide,但它不显示图像。我正在将 Base64 String 转换为 byte [] 然后将该字节加载到 glide 中。也许我在这里做错了什么。但我找不到它。
MainActivity.java
public class MainActivity extends AppCompatActivity {
String imageBytes;
ImageView picView;
RequestQueue requestQueue2 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
picView=(ImageView)findViewById(R.id.imageView) ;
PIC__WEB_CALL();
}
public void PIC__WEB_CALL(){
String HTTP_SERVER_URL= String.format("http://192.1.1.1/Pic/001");
JsonArrayRequest jsArrRequest = new JsonArrayRequest
(Request.Method.GET, HTTP_SERVER_URL, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
PIC_PARSE_DATA_AFTER_WEBCALL(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
}
}){
};
requestQueue2 = Volley.newRequestQueue(this);
requestQueue2.add(jsArrRequest);
}
public void PIC_PARSE_DATA_AFTER_WEBCALL(JSONArray array){
for(int i = 0; i<array.length(); i++) {
Log.i("COURT", "Kooi");
JSONObject json = null;
try {
json = array.getJSONObject(i);
imageBytes=(json.getString("Pic"));
Glide.with(this)
.load(Base64.decode(imageBytes, Base64.DEFAULT))
.into(picView);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (array.length() != 0) {
//.....
}
}
}
解决方案
将您的 base 64 字符串解码为 byte[],然后转换为 Bitmap
byte[] decodedString = Base64.decode(imageBytes, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString,
0,decodedString.length);
picView.setImageBitmap(decodedByte);
推荐阅读
- java - How to deserialize single JSON field with Jackson, having JSON path and DTO?
- user-interface - How to remove QMenu separators in Qt Designer?
- ibm-cloud - Watson Assistant Webhook returns always null
- python - code execution cannot complete as python38.dll not found
- ios - 由于 Firebase,找不到“db/version_edit.h”文件
- laravel - Select option in Laravel vs search
- c++ - Boost序列化:使用序列化保存/加载构造函数方法而不是序列化方法时输入错误
- python - 如何在 CNN 模型中减少验证损失并改善测试结果
- laravel - Laravel - dd() 在 Maatwebsites 导入中不起作用
- scala - 'Undefined constant: "eq" simpdata.ML' 同时试图在 Isabelle/HOL 的 scala-isabelle 中加载 Imperative_Quicksort 理论