답변:
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
image.getDrawable()
실제로 BitmapDrawable
피할 수 있는지 확인하십시오 (피하기 위해 IllegalCastExceptions
). 예를 들어 이미지에 레이어를 사용하는 경우이 스 니펫은 약간 다릅니다.Bitmap bitmap = ((BitmapDrawable)((LayerDrawable)image.getDrawable()).getDrawable(0)).getBitmap();
ImageView
설정 되면이 작동 URI
합니까? imageView.setImageUri()
이것은 당신을 얻을 것입니다 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);
Bitmap bmap = Bitmap.createBitmap(mImageView.getDrawingCache());
아래 코드 작성
ImageView yourImageView = (ImageView) findViewById(R.id.yourImageView);
Bitmap bitmap = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();
찾고있는 사람들을 위해 Kotlin
얻을 수있는 솔루션 Bitmap
에서 ImageView
.
var bitmap = (image.drawable as BitmapDrawable).bitmap
이 코드가 더 좋습니다.
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();
}
Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
이미지의 비트 맵을 얻는 다른 방법은 다음과 같습니다.
Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
imageView.setImageBitmap(imagenAndroid);
이 코드를 사용해보십시오 :
Bitmap bitmap;
bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();