Получить растровое изображение, прикрепленное к ImageView Учитывая ImageView image = R.findViewById(R.id.imageView); image.setImageBitmap(someBitmap); Можно ли получить растровое изображение? Ответ 1 Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap(); Ответ 2 Это даст вам Bitmap из ImageView. Хотя, это не тот растровый объект, который вы установили. Это новый. imageView.buildDrawingCache(); Bitmap bitmap = imageView.getDrawingCache(); === РЕДАКТИРОВАТЬ === imageView.setDrawingCacheEnabled(true); imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); imageView.buildDrawingCache(true); Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache()); imageView.setDrawingCacheEnabled(false); Ответ 3 Этот код лучше. public static byte[] getByteArrayFromImageView(ImageView imageView) { BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable()); Bitmap bitmap; if(bitmapDrawable==null){ imageView.buildDrawingCache(); bitmap = imageView.getDrawingCache(); imageView.buildDrawingCache(false); }else { bitmap = bitmapDrawable .getBitmap(); } ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); return stream.toByteArray(); } Ответ 4 Другой способ получить растровое изображение изображения: Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue); imageView.setImageBitmap(imagenAndroid); Ответ 5 попробуйте этот код: Bitmap bitmap; bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
Ответ 2 Это даст вам Bitmap из ImageView. Хотя, это не тот растровый объект, который вы установили. Это новый. imageView.buildDrawingCache(); Bitmap bitmap = imageView.getDrawingCache(); === РЕДАКТИРОВАТЬ === imageView.setDrawingCacheEnabled(true); imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); imageView.buildDrawingCache(true); Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache()); imageView.setDrawingCacheEnabled(false);
Ответ 3 Этот код лучше. public static byte[] getByteArrayFromImageView(ImageView imageView) { BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable()); Bitmap bitmap; if(bitmapDrawable==null){ imageView.buildDrawingCache(); bitmap = imageView.getDrawingCache(); imageView.buildDrawingCache(false); }else { bitmap = bitmapDrawable .getBitmap(); } ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); return stream.toByteArray(); }
Ответ 4 Другой способ получить растровое изображение изображения: Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue); imageView.setImageBitmap(imagenAndroid);
Ответ 5 попробуйте этот код: Bitmap bitmap; bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();