java - 从画廊设置 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 表中创建新行,并且您可以猜到,其中的一个值应该是该图像的“地址”。我怎样才能做到这一点?这是我正在做的一件好事,还是只是做一些简单的事情的非常复杂的方式?
解决方案
推荐阅读
- javascript - 如何通过比较两个不同的独特属性来对不同大小的对象数组中的元素进行分组?在javascript中
- javascript - 如何修复 FB Instant Game 中的“分享选项”错误
- javascript - 如何在 HTML 中使用多个 ng-app 更改多个输入字段的 CSS 属性?
- sql - 弱实体集中的部分键
- javascript - 为什么在承诺给我一个错误之后在 ExpressJS 中使用 then() 回调?
- php - 如何将带有 alpha 的唯一变量转换为只有整数的唯一变量?
- ios - 将图像放在文件夹引用中是否仍允许 @2x 和 @3x 优化?
- shell - 在 awk 中按特定顺序打印文件
- c# - iText C#中的自定义标签工作者
- excel - 循环文本框值