Demo:
1)MainActivity.java:
package com.venky.imageanddb;
4)Download this Project Click Here
1)MainActivity.java:
package com.venky.imageanddb;
import
java.io.ByteArrayInputStream;
import
java.io.ByteArrayOutputStream;
import
android.app.Activity;
import
android.database.Cursor;
import
android.graphics.Bitmap;
import
android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import
android.graphics.drawable.BitmapDrawable;
import
android.os.Bundle;
import
android.util.Log;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.Button;
import
android.widget.ImageView;
import
android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener
{
ImageView iv1, iv2, iv3, iv4, iv5, imgDB, selectedImg = null;
Database db;
boolean status = false;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new Database(this);
iv1 = (ImageView) findViewById(R.id.imageView1);
iv2 = (ImageView) findViewById(R.id.imageView2);
iv3 = (ImageView) findViewById(R.id.imageView3);
iv4 = (ImageView) findViewById(R.id.imageView4);
iv5 = (ImageView) findViewById(R.id.imageView5);
selectedImg = (ImageView)
findViewById(R.id.selectedImg);
imgDB = (ImageView) findViewById(R.id.imgDB);
iv1.setOnClickListener(this);
iv2.setOnClickListener(this);
iv3.setOnClickListener(this);
iv4.setOnClickListener(this);
iv5.setOnClickListener(this);
Button btnSave = (Button)
findViewById(R.id.btnSave);
Button btnRrtrive = (Button)
findViewById(R.id.btnRetrive);
btnSave.setOnClickListener(new
OnClickListener() {
@Override
public void onClick(View v)
{
if (status) {
ByteArrayOutputStream
baos = new ByteArrayOutputStream();
BitmapDrawable
drawable = (BitmapDrawable) selectedImg
.getDrawable();
Bitmap bitmap =
drawable.getBitmap();
bitmap.compress(CompressFormat.PNG, 100, baos);
byte[] img =
baos.toByteArray();
boolean flag = db.insert(img);
if (flag)
Toast.makeText(MainActivity.this,
"Successfully
inserted image into DB", 3000)
.show();
else
Toast.makeText(MainActivity.this,
"failed
to Image insert into DB", 3000).show();
} else
Toast.makeText(MainActivity.this,
"U are
not selected any image", 3000).show();
}
});
btnRrtrive.setOnClickListener(new
OnClickListener() {
@Override
public void onClick(View v)
{
Database db = new
Database(MainActivity.this);
byte[] img = null;
Cursor c =
db.getDBValues();
int count = c.getCount()
- 1;
if (count != -1) {
c.moveToPosition(count);
img =
c.getBlob(0);
ByteArrayInputStream
bais = new ByteArrayInputStream(img);
Bitmap bitmap =
BitmapFactory.decodeStream(bais);
imgDB.setImageBitmap(bitmap);
} else
Toast.makeText(MainActivity.this, "No Image
in DB", 3000)
.show();
}
});
}
@Override
public void onClick(View v)
{
BitmapDrawable drawable;
Bitmap bitmap;
switch (v.getId()) {
case R.id.imageView1:
drawable = (BitmapDrawable) iv1.getDrawable();
bitmap = drawable.getBitmap();
selectedImg.setImageBitmap(bitmap);
status = true;
break;
case R.id.imageView2:
drawable = (BitmapDrawable) iv2.getDrawable();
bitmap = drawable.getBitmap();
selectedImg.setImageBitmap(bitmap);
status = true;
break;
case R.id.imageView3:
drawable = (BitmapDrawable) iv3.getDrawable();
bitmap = drawable.getBitmap();
selectedImg.setImageBitmap(bitmap);
status = true;
break;
case R.id.imageView4:
drawable = (BitmapDrawable) iv4.getDrawable();
bitmap = drawable.getBitmap();
selectedImg.setImageBitmap(bitmap);
status = true;
break;
case R.id.imageView5:
drawable = (BitmapDrawable) iv5.getDrawable();
bitmap = drawable.getBitmap();
selectedImg.setImageBitmap(bitmap);
status = true;
break;
}
}
}
2)Database.java:
package
com.venky.imageanddb;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Database extends
SQLiteOpenHelper {
SQLiteDatabase db;
public
Database(Context context) {
super(context, "MyDB", null, 1);
}
@Override
public void
onCreate(SQLiteDatabase db) {
db.execSQL("create
table img_tbl(img blob)");
}
@Override
public void
onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
boolean insert(byte[] img) {
try {
db =
getWritableDatabase();
ContentValues values = new
ContentValues();
values.put("img", img);
db.insert("img_tbl", null, values);
return true;
} catch (Exception e) {
}
return false;
}
Cursor getDBValues() {
Cursor c = null;
try {
db =
getWritableDatabase();
c = db.query("img_tbl", null, null, null, null, null, null);
} catch (Exception e) {
}
return c;
}
}
3)main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:text="Select Image"
android:textStyle="bold"
/>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:src="@drawable/orange"
/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:src="@drawable/mango"
/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:src="@drawable/graps"
/>
<ImageView
android:id="@+id/imageView4"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:src="@drawable/apple"
/>
<ImageView
android:id="@+id/imageView5"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:src="@drawable/banana"
/>
</LinearLayout>
</HorizontalScrollView>
<ImageView
android:id="@+id/selectedImg"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:layout_marginTop="5dp"
/>
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="U want save
this image"
android:textStyle="bold"
android:visibility="invisible"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/btnSave"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Save"
/>
<Button
android:id="@+id/btnRetrive"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Retrive"
/>
</LinearLayout>
<ImageView
android:id="@+id/imgDB"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
/>
</LinearLayout>