如何在Android上使用JSON将字符串解析为图像?

时间:2018-12-20 12:04:11

标签: android json

再次打招呼。我用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);
        }

我认为我在适配器中使用了此功能。但是我做不到。我该怎么解决?

1 个答案:

答案 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);