0

나는 발리 JsonObectRequest의 응답을 받았습니다. 내가 할 수 있기를 원하는 것은 인터넷에서 더 이상로드 할 필요가 없도록 해당 이미지를 외부 저장소의 폴더에 직접 저장하는 것입니다. ... 또한 동영상을 포함 할 수있다 다운로드 명심하시기 바랍니다Volley를 사용하여 외부 저장 장치 (Android)에 이미지/비디오를 다운로드하십시오.

// 여기에 이제 이미지 URL을

JsonArrayRequest req = new JsonArrayRequest(endpoint, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 
        pDialog.hide(); 

        images.clear(); 
        for (int i = 0; i < response.length(); i++) { 
         try { 
          JSONObject object = response.getJSONObject(i); 
          Image image = new Image(); 
          image.setName(object.getString("name")); 

          JSONObject url = object.getJSONObject("url"); 
          image.setSmall(url.getString("small")); 
          image.setMedium(url.getString("medium")); 
          image.setLarge(url.getString("large")); 
          image.setTimestamp(object.getString("timestamp")); 

         } catch (JSONException e) { 
          Log.e(TAG, "Json parsing error: " + e.getMessage()); 
         } 
        } 

        mAdapter.notifyDataSetChanged(); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e(TAG, "Error: " + error.getMessage()); 
      pDialog.hide(); 
     } 
    }); 
을 추출하기 위해 URL을

private static final String endpoint = "http://api.androidhive.info/json/glide.json"; 

// 코드를 검색하기위한 발리 코드는 , 어떻게 파일을 내 외부에서 사용할 수 있도록 다운로드를 요청합니까 발리 슛을 사용합니다. 고마워요

답변

1
public boolean storeImages(Bitmap imageBitmap, String fileName, String dirName, int index) { 
    File file; 
    if (isExternalStorageWritable() && isExternalStorageReadable()) { 
     file = storeImageExternalMemory(dirName, albumName, String.valueOf(index)); 
    } 
    try { 
     assert file != null; 
     FileOutputStream out = new FileOutputStream(file); 
     imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); 
     out.flush(); 
     out.close(); 
     updateImageTable(file, index); // Implement Your own method to update ur DB table, U can access file location from DB table for future use of images 
     return true; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 

다운로드 한 이미지를 비트 맵으로 변환하고 휴대 전화에서 원하는 위치로 저장하십시오. 그런 다음 이미지를 다시 사용할 수 있습니다.

 private File storeImageExternalMemory(String dirName, String mediaName) { 
    String packageName = mContext.getPackageName(); 
    File mediaStorageDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() 
      + "/Android/data/" + packageName + dirName); 

    if (!mediaStorageDir.exists()) { 
     if (!mediaStorageDir.mkdirs()) { 
      return null; 
     } 
    } 
    File mediaFile; 
    mediaFile = new File(mediaStorageDir.getPath(), mediaName + ".jpeg"); 
    return mediaFile; 
} 

/* Checks if external storage is available for read and write */ 
public boolean isExternalStorageWritable() { 
    String state = Environment.getExternalStorageState(); 
    return Environment.MEDIA_MOUNTED.equals(state); 
} 

/* Checks if external storage is available to at least read */ 
public boolean isExternalStorageReadable() { 
    String state = Environment.getExternalStorageState(); 
    return Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state); 
} 
+0

답장을 보내 주셔서 감사합니다.하지만 서버의 이미지에만 URL이 있다는 것을 명심하십시오. 그래서 그걸 바탕으로 실제 이미지를 다운로드하거나 개념을 제대로 이해하지 못하는 것입니다. –

관련 문제