0
В моем приложении Android есть изображение. Мне нужно получить это изображение и сохранить его в базе данных sqlite. Я попытался получить uri изображения и сохранить его в базе данных. Я использовал следующий сегмент кода, чтобы получить uri изображения.Android: ошибка в получении URI изображения
// get byte array from image view
Drawable d = image.getBackground();
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
//get URI from byte array
String path = null;
try {
path = Images.Media.insertImage(getContentResolver(), imageInByte.toString(),
"title", null);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Uri imageUri = Uri.parse(path);
String uriString = imageUri.toString() ;
System.out.println(uriString);
ContentValues values = new ContentValues();
values.put(COLUMN_PROFILE_PICTURE, uriString);
Но войти кошка говорит
11-12 06:54:21.028: E/AndroidRuntime(863): FATAL EXCEPTION: main
11-12 06:54:21.028: E/AndroidRuntime(863): java.lang.ClassCastException: android.graphics.drawable.GradientDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
Ошибка указывает на этой линии.
BitmapDrawable bitDw = ((BitmapDrawable) d);
Попробуйте преобразовать непосредственно 'Bitmap растровый = ((BitmapDrawable) г) .getBitmap();' –
@RethinavelPillai Я пытался. Но у меня такая же ошибка – Rose18