再次打招呼。我用android返回android解析。现在,我可以成功解析,但是我没有图片。我们将图片作为String存储在数据库中。因此,我认为必须将String转换为Image以在ImageView
中显示。我尝试使用此功能,但无法使用:
public Bitmap StringToBitMap(String encodedString) {
byte[] encodeByte = Base64.decode(encodedString, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
return bitmap; }
这是我的活动课程:
newsList = new ArrayList<>();
lv = (ListView) findViewById(R.id.list);
new GetContacts().execute();
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
JSONArray news= jsonObj.getJSONArray("news");
JSONObject r = news.getJSONObject(0);
String Id = r.getString("Id");
String NewsDetail = r.getString("NewsDetail");
String Picture= r.getString("Picture");
HashMap<String, String> News = new HashMap<>();
News.put("Id", Id);
News.put("NewsDetail", NewsDetail);
News.put("Picture", Picture);
newsList.add(News);
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
final ListAdapter adapter = new SimpleAdapter(
NewsDip.this, newsList,
R.layout.news_list, new String[]{"Picture"},
new int[]{R.id.imageView});
lv.setAdapter(adapter);
}
我认为我在适配器中使用了此功能。但是我做不到。我该怎么解决?
答案 0 :(得分:0)
您可以使用Glide库来简单地显示字节转换后的图像
将此添加到Gradle中
repositories {
mavenCentral()
google()
}
dependencies {
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
将此添加到您的Java文件中
Glide.with(context)
.load(encodeByte) //your byte array
.asBitmap()
.placeholder(R.drawable.ic_broken)
.into(your imageview);