Friday, November 16, 2012

How to download the images and to create folder to save it

 
Hi all, here we are going to learn how to view an image in ImageView that are in the form of URL and to download that image in our own created folder.
 
Here we are creating a folder to save an image in SDcard.
 
 
private class DownloadTask extends AsyncTask<String, Void, Void> {


private final ProgressDialog dialog = new ProgressDialog(ImageDownloaderActivity.this);


// can use UI thread here

protected void onPreExecute() {

this.dialog.setMessage("Loading...");

this.dialog.show();

}



// automatically done on worker thread (separate from UI thread)

protected Void doInBackground(final String... a) {


try {

Thread.sleep(100);

String url1 = imageUrls[position];

URL ulrn = new URL(url1);


HttpURLConnection con = (HttpURLConnection) ulrn

.openConnection();

InputStream is = con.getInputStream();

bmp = BitmapFactory.decodeStream(is);



int widthPx = getWindowManager().getDefaultDisplay().getWidth();

int heightPx = getWindowManager().getDefaultDisplay().getHeight();

bmp = Bitmap.createScaledBitmap(bmp, widthPx, heightPx, true);



} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 
catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}


// can use UI thread here

protected void onPostExecute(final Void unused) {


if (null != bmp) {

imageView.setImageBitmap(bmp);

}

 
else

System.out.println("The Bitmap is NULL");


File dir = new File(Environment.getExternalStorageDirectory() + "/Example/Wallpapers/");  //path of your own folder

File[] files = dir.listFiles();

if (files == null)

{

int numberOfImages = 0;

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();

Bitmap bitmap = drawable.getBitmap();

File sdCardDirectory = Environment.getExternalStorageDirectory();

new File(sdCardDirectory + "/Example/Wallpapers/").mkdirs();  //creating a folder

File image = new File(sdCardDirectory + "/Example/Wallpapers/Sample" + numberOfImages + ".JPG");          // naming your image as sample1,2,3,,..and saving it in created folder

boolean success = false;


FileOutputStream outStream;

try {

outStream = new FileOutputStream(image);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);

outStream.flush();

outStream.close();

success = true;

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {


e.printStackTrace();

}

if (success) {

Toast.makeText(getApplicationContext(),"Image saved successfully in Sdcard/Example/Wallpapers",Toast.LENGTH_LONG).show();

} else {

Toast.makeText( getApplicationContext(), "Error during image saving", Toast.LENGTH_LONG) .show();

}

}

}

Friday, November 9, 2012

How to store and retrieve the datas from existing SQLiteDB in Android

Hi everyone, here we are going to learn how to insert and fetch the data's from existing DB.

Place your existing DB in mnt/sdcard/YourFolder /Your.db
Here my DB name is XXX.db and the folder I have used is DBFolder.
This class is for DB.

public class SqliteAdapter extends Activity {

 private static final String TAG = "DatabaseHelper";
 public static final String DATABASE_FILE_PATH = "/sdcard/DBFolder";
 public static final String DATABASE_NAME = "XXX.db";
 private Context context;
 private SQLiteHelper sqLiteHelper;
 private static SQLiteDatabase database;
 static String myPath = DATABASE_FILE_PATH + File.separator + DATABASE_NAME;

 public SqliteAdapter(Context pcontext) {

  try {
   database = SQLiteDatabase.openDatabase(myPath, null,
     SQLiteDatabase.OPEN_READWRITE);
   context = pcontext;
  }
  catch (SQLiteException ex) {
   Log.e(TAG, "error -- " + ex.getMessage(), ex);
  } finally {
  }

 }

 public SqliteAdapter openToRead() throws android.database.SQLException {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  return this;

 }

 public SqliteAdapter openToWrite() throws android.database.SQLException {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  return this;

 }

 public void close() {

  sqLiteHelper.close();

 }


 public Cursor executeSQLQuery(String sql, String[] selectionArgs) {

  Log.i(TAG, "Open DB");
  sqLiteHelper = new SQLiteHelper(context, DATABASE_NAME, null, 1);
  database = SQLiteDatabase.openDatabase(myPath, null,
    SQLiteDatabase.OPEN_READWRITE);
  Cursor cursor = database.rawQuery(sql, selectionArgs);
  Log.i("DataBaseHelper", "executeSQLQuery cursor " + cursor.getCount());
  database.close();
  return cursor;

 }

 public class SQLiteHelper extends SQLiteOpenHelper {

  public SQLiteHelper(Context context, String name,
    CursorFactory factory, int version) {
   super(context, name, factory, version);

  }

  @Override
  public void onCreate(SQLiteDatabase db) {

   // TODO Auto-generated method stub
   db.execSQL(DATABASE_NAME);

  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   // TODO Auto-generated method stub
  }
 }
}

Access the DB class through your main class/Activity

public static final String DATABASE_FILE_PATH = "/sdcard/DBFolder";

public static final String DATABASE_NAME = "XXX.db";

static String myPath = DATABASE_FILE_PATH + File.separator + DATABASE_NAME;

SqliteAdapter mySQLiteAdapter;   //object of DB class

SQLiteHelper sqLiteHelper;



For Inserting the data's in Existing DB:

 
SQLiteDatabase db = SQLiteDatabase.openDatabase(myPath,null, SQLiteDatabase.OPEN_READWRITE); 
String sqlQuery = "insert into tableA (bundle,subject) values (a,b)";

db.execSQL(sqlQuery ); 



To Select/Retrieve data's from DB:

mySQLiteAdapter = new SqliteAdapter(this);

mySQLiteAdapter.openToRead();

mySQLiteAdapter.openToWrite();


Cursor cursor = mySQLiteAdapter.executeSQLQuery(
"select COUNT(*) as Value from tableA where TRIM(UPPER(bundle)) =TRIM(UPPER('"
+ value.trim() + "'))", null);



To Update the Data's:

SQLiteDatabase db=SQLiteDatabase .openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);

String updateSql="UPDATE table_B SET logged_in_status=0";

db.execSQL(updateSql);