2012-03-22 13 views
0

私のアプリに新しい機能を追加する必要があります。インターネットからのたくさんのJPG画像を電話に保存する必要があります。JPGリモートファイルをphone internalMemory/sdcardに保存する方法は?

電話機にsdcardがある場合は、JPGファイルをsdcardに保存する必要があります。そうでなければ、電話機がそれを行うスペースを持っている場合に限り、それらをinternalMemoryに格納する必要があります。電話持てる者のSDCARD場合

  1. チェック:

    その後、私はこれらのことを行う必要があります。もしそうなら、SDCARD dirは運命であり、そうでなければ、INTERNAL MEMORYは運命です。

  2. 電話機に写真を保存するスペースがあるかどうかを確認します。
  3. 場合はスペースを持って、私は、インターネットからJPGファイルを取得する方法を知っているとどのようにBITMAPにそれを変換するために、それは私だけが知っていると思う、私はいけないです/Magazine/

と呼ばれるディレクトリに写真を保存私はJPGとしてそれを格納する方法を知っていると私は他のものを知っていない。

public static Bitmap getRemoteBitmap(String url) {  
    Bitmap bm=null; 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpResponse response; 
    try { 
     ((AbstractHttpClient) httpclient).getCredentialsProvider().setCredentials(
       new org.apache.http.auth.AuthScope(null,-1), 
       new org.apache.http.auth.UsernamePasswordCredentials(MagazineStatus._username, MagazineStatus._password)); 

     response = httpclient.execute(new HttpGet(url)); 
     StatusLine statusLine = response.getStatusLine(); 
     if(statusLine.getStatusCode() == HttpStatus.SC_OK) { 
      try {     
       HttpEntity entity = response.getEntity(); 
       InputStream content = entity.getContent(); 
       bm=BitmapFactory.decodeStream(content); 
      }catch(Exception ex) {Log.e("DBF Error",ex.toString());}     
     }else { 
      response.getEntity().getContent().close(); 
      throw new IOException(statusLine.getReasonPhrase()); 
     } 
    }catch(ClientProtocolException cpe) {Log.e("ClientProtocolException @ at FPT",cpe.toString());} catch(Exception ex) {Log.e("Exception at FETCHPROJECTASK",ex.toString());} 
    return bm; 
} 

私は、これを行うための最善の方法のための最適な方法をお聞きしprefeer、私は私が必要なものを行う方法をグーグルで検索するんだけど、私は、任意の明確な情報を見つけることができません。

THanks

答えて

1

上記の方法の戻り値は、インターネットからのビットマップを提供します。

以下のコードを使用して、JPGをsdcardに保存します。

try { 
    bm.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/Magazine/Image001.jpg"))); 
    // bm is your decoded bitmap from internet 
} catch (FileNotFoundException e) {    
    e.printStackTrace() 
} 

私はあなたを助けてくれることを願っています。

0

SDカードが存在するかどうかを確認するには、次の

if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { 

Log.i("tag", "SDCard is mounted"); 

} 

を携帯電話のメモリ上のサイズを取得するには:ウルフォルダ名を追加する

Get free space on internal memory

File path = Environment.getDataDirectory(); 
StatFs stat = new StatFs(path.getPath()); 
long blockSize = stat.getBlockSize(); 
long availableBlocks = stat.getAvailableBlocks(); 
return Formatter.formatFileSize(this, availableBlocks * blockSize); 

をちょうどcontext.getFilesDir()を取得し、URとの連結フォルダ名

関連する問題