我正在做一个用户选择图像的项目,我们必须存储图像的路径。我可以在imageView
中显示图片,但是当应用程序关闭或用户按下按钮时图像不显示。所以我必须永远保留图像,直到用户删除图像。
以下是我的代码:
Button buttonLoadImage = (Button) findViewById(R.id.pre1);
buttonLoadImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
}
@SuppressWarnings("unused")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap yourSelectedImage = BitmapFactory.decodeFile(picturePath);
//testimage.setImageBitmap(yourSelectedImage);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
yourSelectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
ImageView imageView = (ImageView) findViewById(R.id.im2);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
pd.open();
pd.insert(picturePath);
pd.close();
}
}
答案 0 :(得分:1)
通常,当您想要将图像保存在数据库中时,它有多种方法可以存储它。
1)您可以将图像保存为数据库中的imageName。
2)您还可以将图像路径保存到数据库中,当您从字符串中的数据库中检索该路径之后,您可以解码该路径,通常我们可以在从图库中提取时执行此操作。
3)您可以将图像保存为数据库中的byte [],当您想要检索它时,您可以检索为BLOB图像,然后将该byte []转换为Bitmap并将该位图设置为ImageView。
答案 1 :(得分:0)
看你可以做两件事: -
sharedPreference
,fileSystem
,sqlite DB或任何var。< / LI>
如果您有图像路径,那么您可以获得如下图像: -
private void loadImageFromStorage(String path)
{
try {
// if you want to use the same path then use this
Bitmap b = BitmapFactory.decodeFile(pathName);
ImageView img=(ImageView)findViewById(R.id.imgPicker);
img.setImageBitmap(b);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
不要忘记授予权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />