Android - 位图 Null 对象参考

拉吉·库马尔

在我的应用程序中,我正在使用 picasso 下载图像并将该图像转换为字节数组。我在此方法下方调用以下载图像并将其转换为字节数组。

   private byte[] convertToByte(String url) {

    Picasso.with(list_my_posts.this).load(url).fit().centerCrop().into(img);
    Bitmap bitmap=((BitmapDrawable)img.getDrawable()).getBitmap();
    ByteArrayOutputStream stream=new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG,100,stream);
    byteArray= stream.toByteArray();

    Toast.makeText(getApplicationContext(),"Downloaded Successfully",Toast.LENGTH_LONG).show();

    return byteArray;
}

我的问题是我收到这样的错误。
日志

java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference

谁能帮我解决这个问题。

青蛙

您不需要ImageView仅仅用于下载图像并获取其字节数组。使用 Picasso,您可以注册在下载完成时调用的回调。

private Target target = new Target() {
    @Override
    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
    }

    @Override
    public void onBitmapFailed(Drawable errorDrawable) {
    }

    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {
    }
}

使用此回调,您可以异步下载图像:

Picasso.with(context).load(url).into(target);

同样要将位图转换为字节数组,您可以先压缩位图,然后将其保存到输出流中:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();

如果不想压缩,可以使用Bitmap.copyPixelsToBuffer方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android studio java.langNullPointerException null对象参考

来自分类Dev

带有setter和getter的Null对象参考SAXParser Android

来自分类Dev

Android:如何从HashMap对象获取位图?

来自分类Dev

Android:如何从HashMap对象获取位图?

来自分类Dev

Android:如何从HashMap对象获取位图?

来自分类Dev

Android PNG到位图--- SkImageDecoder :: Factory返回null

来自分类Dev

在Android Studio上设置位图时获取null

来自分类Dev

Android位图对象作为绘制缓冲区

来自分类Dev

如何将Leptonica Pix对象转换为Android的位图

来自分类Dev

在Android的GridView中插入位图数组而不是可绘制对象

来自分类Dev

android,如何将位图转换为文件对象

来自分类Dev

Android Snackbar空对象参考

来自分类Dev

在Android中清除位图

来自分类Dev

Android:从Uri压缩位图

来自分类Dev

Android压缩位图

来自分类Dev

Android位图对比实现

来自分类Dev

Android滑行加载位图

来自分类Dev

Android图像缓存的位图

来自分类Dev

位图回收Android

来自分类Dev

从相机Android获取位图

来自分类Dev

Android位图坐标扭曲

来自分类Dev

在Android中缓存位图

来自分类Dev

缓存位图Android

来自分类Dev

Android图像缓存的位图

来自分类Dev

位图顶部的光圈-Android

来自分类Dev

Android位图对比实现

来自分类Dev

Android回收位图错误

来自分类Dev

Android位图曝光

来自分类Dev

Android裁剪位图