Как сохранить и получить путь изображения в SQLite Android - PullRequest
0 голосов
/ 06 февраля 2012

я хочу сохранить и получить путь к изображению в моем приложении

это мой DBhelper

public void insert(String kdstore,String nama, String alamat, String kodepos, String notel, 
        String lng, String lat ,String Perus,String gambar){

    //waktu = new Date().toString();
    ContentValues cv = new ContentValues();
    cv.put("kdstore", kdstore);
    cv.put("nama", nama);
    cv.put("alamat", alamat);
    cv.put("kodepos", kodepos);
    cv.put("notel", notel);
    cv.put("lng", lng);
    cv.put("lat", lat);
    cv.put("Perus", Perus);
    cv.put("gambar", df.fileName);
    System.out.println();
    getWritableDatabase().insert("alfamapp", "name", cv);
}

и это мой startCameraActivity

_path=Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/";
        fileName =  String.format(System.currentTimeMillis()+".jpg");
        File file = new File(_path, fileName);
        try {
        file.createNewFile();
        } catch (IOException e) {
        e.printStackTrace();
        }
        Uri outputFileUri = Uri.fromFile(file);
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

        startActivityForResult(intent, IMAGE_CAPTURE); 

как я могусохранить путь от камеры в моей базе данных ??Пожалуйста, помогите мне:)


Я поместил код для вставки в метод startCamera, этот код, как этот

public void startCamera() 
{
    Cursor c = helper.getById(almagId);
    c.moveToFirst();

    file = new File(_path, fileName);
    try {
    file.createNewFile();
    } catch (IOException e) {
    e.printStackTrace();
    }    

    file1 = new File(_path, fileName);
    try {
    file1.createNewFile();
    } catch (IOException e) {
    e.printStackTrace();
    }

    Uri outputFileUri = Uri.fromFile(file);
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
    finishActivity(IMAGE_CAPTURE);

    Uri outputFileUri1 = Uri.fromFile(file1);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri1);
    startActivityForResult(intent, IMAGE_CAPTURE);
    System.out.println(file1);

    Dbhelper helper = new Dbhelper(this);
    SQLiteDatabase db = helper.getWritableDatabase();
    db.execSQL("update alfamapp set gambar ='"+file+"',gambar1 ='"+file1+"' " +
                "where kdstore='"+helper.getKdStore(c)+"'");
    db.execSQL("insert into image (kdstore,image1) values ('"+helper.getKdStore(c)+"','"+file+"')");
    db.execSQL("update image set image2 ='"+file1+"' where kdstore='"+helper.getKdStore(c)+"'");
    db.close();
    helper.close();
    load();

    System.out.println(db);

}

, а затем этот код для получения этого изображения

if(helper.getGamb(c).equals("")){
        System.out.println("gamb kosong");
        detGam.setImageResource(R.drawable.gambarnf);

    }else detGam.setImageDrawable(Drawable.createFromPath(helper.getGamb(c)));

у вас есть решение моего кода ?? большое спасибо:)

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Используйте этот код для получения пути к изображению ...

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
        case SELECT_IMAGE:
            String imagePath = getPath(data.getData());
            Savingimagepath(imagePath);
            img.setImageDrawable(Drawable.createFromPath(imagePath));
            break;
        }
    }
}

, и это пример метода сохранения пути в базе данных

private void Savingimagepath(String imagePath) {
    testDatabase testDB = new testDatabase(contact.this);
    testDB.open();

    try {
        testDB.getexecute("delete from ctoffice");
        testDB.getexecute("insert into ctoffice (idnt1)Values('"
                + imagePath + "')");
    } catch (Exception e) {
        System.out.println(e);
    }
    testDB.close();
}
1 голос
/ 06 февраля 2012

Вы можете использовать onActivityResult для сохранения пути после захвата фотографии.

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if( requestCode == IMAGE_CAPTURE && resultCode == Activity.RESULT_OK) {
        DBHelper dbHelper = new DBHelper(this);
        SQLiteDatabase sql = dbHelper.getWritableDatabase();
        sql.execSQL("insert statement for inserting path to database");
        sql.close();
        dbHelper.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...