1

カメラ インテントから画像を取得し、それをビューに配置する Android 開発者の例に従いました。問題は、その画像 uri を自分に保存しようとしたときに始まりSqliteDatabase(完全な画像ではなく、その画像へのリンクだけなので、スペースを節約します)、それを customadapter に復元しようとします。

Google dev へのリンク - > http://developer.android.com/training/camera/index.html

私は成功せずにこれを試しました

グローバル文字列ロゴを作成し、これを中handleSmallCameraPhotoに入れます

private void handleSmallCameraPhoto(Intent intent) {
        Bundle extras = intent.getExtras();
        mImageBitmap = (Bitmap) extras.get("data");
        ImagenViaje.setImageBitmap(mImageBitmap);
        ImagenViaje.setVisibility(View.VISIBLE);
    --> logo = extras.get("data").toString();

次に、ロゴをSQLiteに保存し、この方法でアダプターに復元しようとしました

String imagePath = c.getString(c.getColumnIndexOrThrow(MySQLiteHelper.COLUMN_LOGO_PATH));

それで

 ImageView item_image = (ImageView) v.findViewById(R.id.logo);
    item_image.setVisibility(ImageView.INVISIBLE);
        Bitmap bitmap = BitmapFactory.decodeFile(imagePath);

        item_image.setImageBitmap(bitmap);
        item_image.setVisibility(ImageView.VISIBLE);
4

1 に答える 1

0

を使用して画像のパスを取得する

Uri selectedImageUri = intent.getData();
String s1 = intent.getDataString(); 

String selectedImagePath = getPath(selectedImageUri);
if(selectedImagePath==null && s1 != null)
{
    selectedImagePath = s1.replaceAll("file://","");
}

あなたのhandleSmallCameraPhoto方法で

このメソッドをアクティビティに追加します

public String getPath(Uri uri) {

    try{
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    if(cursor==null)
    {
        return null;

    }
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
    }
    catch(Exception e)
    {
        return null;
    }

}

データベースに保存し、選択した画像のパスがselectedImagePath必要なときに使用しますselectedImagePath

あなたを助けてください..

于 2012-08-07T11:11:39.593 に答える