我目前正在学习android,我正在制作类似联系人的应用程序。
用户可以创建一个联系人,它将被添加到当前的sql lite数据库中。
我希望能够添加一个选项,在创建/编辑联系人时可以从图库中选择图像。
如何从手机的图库中选择图像,然后将该图像的位置保存到该个人联系人中,以便稍后显示?
答案 0 :(得分:0)
使用此意图启动图像选择器
Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), 9000);
使用此功能检索图像
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9000 && 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();
ImageView imageView = (ImageView) findViewById(R.id.galpic);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
为了保存图像,将图像转换为字节数组,然后保存到db。位图是包含图像的位图对象
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String string_file = Base64.encodeToString(b, Base64.DEFAULT);