android - 如何将图像传递到 Android 中的 ArrayList<String>?

标签 android image arraylist

我有一种情况需要设置图像列表,但我无法做到这一点,因为我不知道如何将字符串数组列表传递给位图。

代码:

        private void setImageBit(String item, ImageView imageView){
        path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "SanPics2";
        File file = new File(path,"Image 5.jpg");
        String item = file.toString();
        Bitmap bitmap = BitmapFactory.decodeFile(item);
        float i = ((float) imageWidth) / ((float) bitmap.getWidth());
        float imageHeight = i * (bitmap.getHeight());
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) imageView.getLayoutParams();
        params.height = (int) imageHeight;
        params.width = (int) imageWidth;
        imageView.setLayoutParams(params);
        imageView.setImageBitmap(bitmap);

    }

我知道上面的代码只会设置指定的“Image 5.jpg”,但我需要在 MASONRY VIEW 中设置更多图像。例如,请参见下文。我想在下面描述的 View 中动态设置从相机拍摄的图像。但我无法做到这一点。

enter image description here

我也试过 decodeByteArray() 会得到数组(我会传递数组中的路径列表)但这似乎不起作用,因为无法将字符串路径转换为字节按预期工作。而且我还尝试了以下

   path = android.os.Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "SanPics2";
   File file = new File(path);
   Bitmap bitmap = BitmapFactory.decodeFile(path);
   imageView.setImageBitmap(bitmap);

但这似乎返回一组空图像。没有图像的空白页面。如果需要,我很乐意为您提供更多代码。任何帮助将不胜感激。提前致谢,如有任何疑问,请随时提出要求。

最佳答案

你只需要像下面这样用 Bitmap 创建 ArrayList:

ArrayList<Bitmap> img_bitmap

现在,只需使用以下函数加载一张图片并将其存储到位图列表中,如下所示:

public static Bitmap ImgBitFromFile(String file_name) {

    File imgFile = new File(
            "/data/data/package/app_my_sub_dir/images/" + file_name);
    //System.out.println("Image Exists:::" + imgFile.getAbsolutePath().toString());
    if (imgFile.exists()) {
        // System.gc();
        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile
                .getAbsolutePath());
        //System.out.println("Image Exists:::");

        return myBitmap;
    }
    return null;
}

并像下面这样存储到位图数组列表中:

for (int i = 0; i < c.getCount(); i++) {

            if(c.getString(3)!="") {

                img_bitmap.add(ImgBitFromFile(c.getString(5)));//Image path from Database
                img_name.add(c.getString(3));
                    }
                    c.moveToNext();

                }

最后将一张一张的图像加载到您的 GridView ImageAdapter 中。

关于android - 如何将图像传递到 Android 中的 ArrayList<String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20987392/

相关文章:

javascript - 来自较大图像文件的质量更好的缩略图

java - 如何从对象数组列表中找到最大元素?

java - 无法对数组类型 comparable[ ] 调用 get int

android - SherlockFragment 无法转换为 Fragment,我的 Activity 是 SherlockActivty

android - 检查 Android 设备是否可以旋转

android - 以编程方式将按钮宽度设置为父 LinearLayout 的 50%

java - 如何去除9patch边距

python - 使用 PIL 将二进制字符串转换为图像

jquery - 鼠标悬停时更改图像

java - 获取方法返回值