【问题标题】:How to convert an ArrayList of byte[] to an array of Integer in Android?如何将 byte[] 的 ArrayList 转换为 Android 中的 Integer 数组?
【发布时间】:2015-08-06 01:37:59
【问题描述】:

我正在尝试将 ArrayList<byte[]> listByte 转换为 Integer[] arrInteger。我通过一个对象从服务器获取listByteof 图片。我的目标是让这个Array of Integer(图片) 稍后在ListView(arrayAdapter = new MyClass(MyActivity.this, stringArr, arrInteger);. 我试过这样:

ArrayList<Integer> integerList = new ArrayList<>();
   for (int i = 0; i < objectList.size(); i++) {
     integerList.add(ByteBuffer.wrap(objectList.get(i).getPicture()).getInt(i));
    /*integerList.add(new BigInteger(objectList.get(i).getImage()).intValue());*/ //I tried this too
    }

Array of Integer,像这样:

Integer[] arrInteger = new Integer[integerList.size()];
arrInteger = integerList.toArray(arrInteger);

当我运行应用程序时,ListView 显示时没有图片。所以我使用了调试,发现我的arrInteger = null!。如何正确转换?

【问题讨论】:

  • 不清楚你想要实现什么,图像不能表示为整数
  • @carl 是 byte[] 单个整数的表示
  • @Egor:存储在drawable folder 中的图像,您可以这样获取它们:Integer[] images = {R.drawable.icon,,,,};。我想这样做,以获得Array of Integer
  • @Eduardo Pérez:在哪里/如何做到这一点?
  • @DAO:我不明白你的意思?

标签: java android arraylist integer bytearray


【解决方案1】:

解码回位图

   ArrayList<Bitmap> imgs = new ArrayList<Bitmap>();
   for(byte[] array: listByte)
   {
        Bitmap bm = BitmapFactory.decodeByteArray(array, 0, array.length); //use android built-in functions
        imgs.add(bm);
   }

【讨论】:

  • 使用ListView中的图片的问题,我用了这个constructorarrayAdapter = new MyClass(MyActivity.this, stringArr, arrInteger);Integer[] arrInteger。从ArrayList 转换为Array 后,我可以将imgs 用作Bitmap[] arr 吗?
  • 感谢您的帮助。现在效果很好。我用setImageBitmap()代替setImageResource()
猜你喜欢
  • 1970-01-01
  • 2021-02-21
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
相关资源
最近更新 更多