首页 > 解决方案 > 从画廊设置 imageviewresource

问题描述

我有一个程序,其中有 SQLite 数据库。在一个表中,其中一个列存储整数值,这些值是可绘制图像的“地址”。(当我想添加一行时,我使用 method: recipesBase.newRecipe("BakedOmelet", "Breakfast","Description2", R.drawable.i024, recipe_1, steps_1);,其中 recipesBase 是从SQLiteOpenHelper扩展的类的实例,此列取值R.drawable.i024。一切正常,但现在我必须从用户那里获取一些数据,并且其中之一是来自画廊的图像。我把它放到 ImageView 中:

JavaIntent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, GALLERY_REQUEST);

和:

@Override
    protected void onActivityResult(int reqCode, int resultCode, Intent data) {
        super.onActivityResult(reqCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            try {
                final Uri imageUri = data.getData();
                final InputStream imageStream = getContentResolver().openInputStream(imageUri);
                final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                ImageView img = findViewById(R.id.img);
                img.setImageBitmap(selectedImage);
                //

                String savedImageURL = MediaStore.Images.Media.insertImage(
                        getContentResolver(),
                        selectedImage,
                        "Image",
                        "UserData"
                );

                // Parse the gallery image url to uri
                Uri savedImageURI = Uri.parse(savedImageURL);
                Toast.makeText(getApplicationContext(), savedImageURL, Toast.LENGTH_LONG).show();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Something went wrong", Toast.LENGTH_LONG).show();
            }

        }else {
            Toast.makeText(getApplicationContext(), "You haven't picked Image",Toast.LENGTH_LONG).show();
        }
    }

然后,当我将它加载到 ImageView 时,我想在我的 SQLite 表中创建新行,并且您可以猜到,其中的一个值应该是该图像的“地址”。我怎样才能做到这一点?这是我正在做的一件好事,还是只是做一些简单的事情的非常复杂的方式?

标签: javaandroidimage

解决方案


推荐阅读