在应用程序中拥有大量图片的最佳方式? Android Studio

时间:2016-03-25 01:20:56

标签: android image android-studio large-data-volumes

所以我正在制作一款拥有超过200张日落照片的应用程序(由我自己拍摄:P)。我希望通过android.R.layout.simple_gallery_item全部显示它们我尝试将它们全部扔在drawable文件夹中,然后对每个文件进行位图并将其绘制在屏幕上,但我收到内存不足错误。

存储这些jpg的最佳方法是什么?

我能想到的唯一两种方法是:

  • 从应用下载单独的zip文件?
  • 可绘制文件? (使用位图不是正确的方法吗?)
  • 以某种方式将它们存储在apk中,然后在安装应用程序之前将它们推送到设备上?(如果可能的话,因为如果我是正确的(我可能不是),在构建apk时,所有内容都汇集在一起​​,一些文件变为一个)

(PS:如果说不清楚,我是Android开发的新手)

谢谢!

代码:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    System.out.println("Noobs");

    ArrayList<Image> img = new ArrayList<Image>();
    for (int i=1; i<3; i++) {
        int imageResource = getResources().getIdentifier("@drawable/bm" + String.valueOf(i), null, getPackageName());
        img.add(ImageView.setImageResource(imageResource));
        System.out.println("Did Pic "+String.valueOf(i));
    }


    System.out.println("Come so far!");
    ListAdapter picAdapt = new ArrayAdapter<Image>(this, android.R.layout.simple_gallery_item, img);
    ListView picListView = (ListView) findViewById(R.id.gallery);
    picListView.setAdapter(picAdapt);

} }

2 个答案:

答案 0 :(得分:4)

我建议您使用毕加索http://square.github.io/picasso/ 或滑行https://github.com/bumptech/glide
这两个可以帮助您获得和优化您的图像

答案 1 :(得分:0)

    ArrayList<Integer> img = new ArrayList<Integer>();
    for (int i=1; i<3; i++) {
        int imageResource = getResources().getIdentifier(mContext.getPackageName() + ":drawable/bm" + String.valueOf(i), null, null);
        img.add(imageResource);

    }

    ImageView imageView = findViewById(R.id.<UR_ID>);        
    imageView.setImageResource(img.get(0));