2016-07-28 82 views
0

我有一个NetworkImageView,用于从服务器下载图像。但是,要求是能够在下载图像后旋转图像。我有一个旋转图像函数,但我需要获取与NetworkImageView关联的位图,以便旋转位图。我如何从NetworkImageView访问BitMap?如何从NetworkImageView获取BitMap

+0

我希望你知道,这是没有必要使用NetworkImageView,您可以直接请求位图,并将其设置为一个ImageView的。它会为你节省很多头痛 –

回答

0

您可以使用下面的方法来获取任何视图的位图。

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; 
    } 
0

希望这有助于

UPDATE

科瑞e抽象图像请求。 图片加载完毕并设置在NetworkImageView之后,此代码将起作用。否则,由于在NetworkImageView

mNetworkImageView = (NetworkImageView) view.findViewById(R.id.networkImage); 
Bitmap bitmap = ((BitmapDrawable) mNetworkImageView.getDrawable()).getBitmap(); 

内没有浏览/图像还有另一种方法使用排并取得位图它会返回一个空指针。

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.

+0

这是为null(BitmapDrawable)mNetworkImageView.getDrawable()抛出null。 – Chris

+0

立即浏览编辑并尝试。它现在会工作。您可能没有等待图像首先加载。 –