2011-03-29 11 views
6

मैं अपने स्थानीय ड्राइव फ़ोल्डर में या res/drawable फ़ोल्डर में छवि को सहेजना चाहता हूं। मैं अभी एसडी कार्ड में आईएमजी को सहेज रहा हूं लेकिन मुझे इसे res/drawable फ़ोल्डर में सहेजना है। मेरे कोड है:एंड्रॉइड छवि res/drawable फ़ोल्डर में सहेजती है

String image_URL = "http://chart.apis.google.com/chart?chs=200x200&cht=qr&chl=http%3A%2F%2Fandroid-er.blogspot.com%2F"; 

String extStorageDirectory; 

Bitmap bm; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button buttonSave = (Button) findViewById(R.id.save); 

    ImageView bmImage = (ImageView) findViewById(R.id.image); 
    BitmapFactory.Options bmOptions; 
    bmOptions = new BitmapFactory.Options(); 
    bmOptions.inSampleSize = 1; 
    bm = LoadImage(image_URL, bmOptions); 
    bmImage.setImageBitmap(bm); 


    extStorageDirectory = Environment.getExternalStorageState().toString(); 
    extStorageDirectory = Environment.getExternalStorageDirectory() 
      .toString(); 

    buttonSave.setText("Save to " + extStorageDirectory + "/qr.PNG"); 
    buttonSave.setOnClickListener(buttonSaveOnClickListener); 
} 

private Bitmap LoadImage(String URL, BitmapFactory.Options options) { 
    Bitmap bitmap = null; 
    InputStream in = null; 
    try { 
     in = OpenHttpConnection(URL); 
     bitmap = BitmapFactory.decodeStream(in, null, options); 
     in.close(); 
    } catch (IOException e1) { 
    } 
    return bitmap; 
} 

private InputStream OpenHttpConnection(String strURL) throws IOException { 
    InputStream inputStream = null; 
    URL url = new URL(strURL); 
    URLConnection conn = url.openConnection(); 

    try { 
     HttpURLConnection httpConn = (HttpURLConnection) conn; 
     httpConn.setRequestMethod("GET"); 
     httpConn.connect(); 

     if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) { 
      inputStream = httpConn.getInputStream(); 
     } 
    } catch (Exception ex) { 
    } 
    return inputStream; 
} 

Button.OnClickListener buttonSaveOnClickListener = new Button.OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     OutputStream outStream = null; 
     File file = new File(extStorageDirectory, "er.PNG"); 
     try { 
      outStream = new FileOutputStream(file); 
      bm.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
      outStream.flush(); 
      outStream.close(); 

      Toast.makeText(LoadSaveImgActivity.this, "Saved", 
        Toast.LENGTH_LONG).show(); 

     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      Toast.makeText(LoadSaveImgActivity.this, e.toString(), 
        Toast.LENGTH_LONG).show(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      Toast.makeText(LoadSaveImgActivity.this, e.toString(), 
        Toast.LENGTH_LONG).show(); 
     } 

    } 

}; 

उत्तर

3

संभव नहीं रनटाइम पर res/drawable में कुछ भी बचाने के लिए, है खेद है।

+3

cource की कार्यावधि में हो सकता है ..! ;) – Mudassir

1

आप रनटाइम पर न तो res/drawable, और न ही आपके एपीके का कोई अन्य फ़ोल्डर संशोधित नहीं कर सकते हैं। यह संकलन समय पर बनाया गया है और इसके बाद आवेदन के अंदर से कुछ भी संशोधित नहीं कर सकता है।

संबंधित मुद्दे