如何从服务器下载图像并使用Android中的JSON存储在内部存储中

时间:2015-07-23 10:47:58

标签: android json bitmap

我希望使用json从服务器下载图像并将其存储在内部存储中,然后逐个显示图像。我有JSON格式可以任何机构帮助我如何做到这一点??? 我的json是:

Copy-Item -Path X:\Test.txt '\\MyComputerNameOrIP\D$'

3 个答案:

答案 0 :(得分:0)

最简单的方法之一是使用Glide库(https://github.com/bumptech/glide) 你可以得到位图

Bitmap bitmap = Glide.with(pContext).load(url).asBitmap().into(100, 100).get();

然后保存位图

确保在新线程中调用该方法

答案 1 :(得分:0)

你得到String以响应服务器。 然后创建json对象

String strResponse = ...
JSONObject jsonObject = new JSONObject(strResponse);
JSONArray pagesArray = jsonObject.getJSONArray("pages");
for (int i=0;i<pagesArray.length();i++){
  JSONObject pageObj = pagesArray.getJSONObject(i);
  JSONArray pageImagesArray = pageObj.getJSONArray("page_image");
  for (int j=0;j<pageImagesArray.length();j++) {
     JSONObject image = pageImagesArray.getJSONObject(j);
      String urlImg = image.getString("image");
  }
}

答案 2 :(得分:0)

1-在build.gradle中添加compile 'com.squareup.picasso:picasso:2.5.2'或从Picasso

下载jar文件

2- Picasso.with(this) .load("Your image url here") .into(target); 如果你列出,那么你也可以在遍历你的列表(在任何循环内)时使用上面。

3 - 作为上述类中显示编译时错误的目标。将以下代码作为您的内部类。

private Target target = new Target() {
@Override
 public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
  new Thread(new Runnable() {
       @Override
     public void run() {

        File file = new File(Environment.getExternalStorageDirectory().getPath() + "/image1.jpg");
        try {
           file.createNewFile();
           FileOutputStream ostream = new FileOutputStream(file);
           bitmap.compress(CompressFormat.JPEG, 80, ostream);
           ostream.close();
        } catch (Exception e) {
           e.printStackTrace();
        }}
  }).start(); }
   @Override
    public void onBitmapFailed(Drawable errorDrawable) {}
   @Override
   public void onPrepareLoad(Drawable placeHolderDrawable) {
  if (placeHolderDrawable != null) {} }};

4 - 如果您在理解上述代码时仍然遇到问题,请参考以下示例。 Picasso - Image downloading and caching library for Android

5-`for(int i = 0; i&lt; cons.length(); i ++)

{
    JSONObject c = cons.getJSONObject(i);
    imgURL = c.getString(image);
    Picasso.with(this)
            .load(imgURL)
            .into(new Target() {
                @Override
                public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {

                            File file = new File(Environment.getExternalStorageDirectory().getPath() + "/image1.jpg");
                            try {
                                file.createNewFile();
                                FileOutputStream ostream = new FileOutputStream(file);
                                bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
                                ostream.close();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }}
                    }).start();
                }

                @Override
                public void onBitmapFailed(Drawable errorDrawable) {

                }

                @Override
                public void onPrepareLoad(Drawable placeHolderDrawable) {

                }
            });
}`