У меня есть NetworkImageView, где я загружаю изображения с сервера. Однако требование состоит в том, чтобы иметь возможность поворачивать изображение после загрузки изображения. У меня есть функция поворота изображения, но мне нужно получить растровое изображение, связанное с NetworkImageView, чтобы я мог повернуть растровое изображение. Как я могу получить доступ к BitMap из NetworkImageView?
Как получить BitMap из NetworkImageView
Ответы (2)
Вы можете использовать метод ниже, чтобы получить растровое изображение любого представления.
Bitmap bitmap = viewToBitmap(mImageView);
Bitmap bitmap = viewToBitmap(mLinearlayout);
Bitmap bitmap = viewToBitmap(mRelativelayout);
public Bitmap viewToBitmap(View view) {
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}
Надеюсь это поможет
ОБНОВЛЕНИЕ
Создайте запрос изображения залпа. После того, как изображение будет загружено и установлено внутри NetworkImageView, этот код будет работать. В противном случае он вернет нулевой указатель, поскольку внутри NetworkImageView нет представления/изображения.
mNetworkImageView = (NetworkImageView) view.findViewById(R.id.networkImage);
Bitmap bitmap = ((BitmapDrawable) mNetworkImageView.getDrawable()).getBitmap();
Есть еще один способ использовать Volley и получить растровое изображение.
Create an ImageRequest
inside the onResponse(), obtain the Bitmap and set it to your ImageView (Not NetworkImageView). I had mentioned this method in the comments above.