Friday, September 30, 2011

Fetch URL image and store in the SD card


Following code use for fetch URL image and store image in the SD card of the Android
package com.example.urlimage;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

public class UrlImageActivity extends Activity {
ImageView imView;

Bitmap bmImg;
Button bt, btSave;
String imageUrl = "";
int visibilty = 0;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);

btSave = (Button) findViewById(R.id.btnSave);

bt = (Button) findViewById(R.id.btnLoad);
bt.setOnClickListener(getImgListener);

imView = (ImageView) findViewById(R.id.imview);
Log.i("img already downloaded", "img");
btSave.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Log.i("img url", "Under Save");
saveImage();
}
});
}

View.OnClickListener getImgListener = new View.OnClickListener() {

public void onClick(View view) {
// TODO Auto-generated method stub
//Give the image URl from you want to fetch image
imageUrl = “
http://209.85.229.99/chart?cht=qr&chs=200x200&chl=nitin

if (imageUrl.equals(""))

Toast.makeText(getApplicationContext(), "Enter an URL first", 1000).show();
downloadFile(imageUrl);
Log.i("im url", imageUrl);
btSave.setVisibility(visibilty);
}

};

void downloadFile(String fileUrl) {
URL myFileUrl = null;
try {
myFileUrl = new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
Log.i("im connected", "Download");
bmImg = BitmapFactory.decodeStream(is);

imView.setImageBitmap(bmImg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

void saveImage() {
File filename;
try {
String path = Environment.getExternalStorageDirectory().toString(); new File(path + "/mydir/").mkdirs();
filename = new File(path + "/mydir/myimage.jpg");
Log.i("in save()", "after file");
FileOutputStream out = new FileOutputStream(filename);
Log.i("in save()", "after outputstream");
bmImg.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
Log.i("in save()", "after outputstream closed");
MediaStore.Images.Media.insertImage(getContentResolver(),
filename.getAbsolutePath(), filename.getName(),
filename.getName());
bt.setText("Saved...");
Toast.makeText(getApplicationContext(),
"File is Saved in " + filename, 1000).show();
} catch (Exception e) {
e.printStackTrace();
}

}
}

No comments:

Post a Comment