Как получить BitMap из NetworkImageView

У меня есть NetworkImageView, где я загружаю изображения с сервера. Однако требование состоит в том, чтобы иметь возможность поворачивать изображение после загрузки изображения. У меня есть функция поворота изображения, но мне нужно получить растровое изображение, связанное с NetworkImageView, чтобы я мог повернуть растровое изображение. Как я могу получить доступ к BitMap из NetworkImageView?


person Chris    schedule 28.07.2016    source источник
comment
Надеюсь, вы знаете, что нет необходимости использовать NetworkImageView, вы можете напрямую запросить растровое изображение и установить его в ImageView. Это избавит вас от головной боли   -  person Geet Choubey    schedule 28.07.2016


Ответы (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;
    }
person Sohail Zahid    schedule 28.07.2016

Надеюсь это поможет

ОБНОВЛЕНИЕ

Создайте запрос изображения залпа. После того, как изображение будет загружено и установлено внутри 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.

person Geet Choubey    schedule 28.07.2016
comment
Это выдает ноль для (BitmapDrawable) mNetworkImageView.getDrawable(). - person Chris; 28.07.2016
comment
Пройдите редактирование сейчас и попробуйте. Теперь это сработает. Вероятно, вы не дождались загрузки изображения. - person Geet Choubey; 29.07.2016