在应用程序中包含大量图片的最佳方式? Android 工作室
Best way to have lots of pictures in an App? Android Studio
所以我正在制作一个包含 200 多张日落照片(由 myself:P 拍摄)的应用程序。我想通过 android.R.layout.simple_gallery_item
显示它们我尝试将它们全部扔到可绘制文件夹中,然后对每个进行位图绘制并在屏幕上绘制,但出现内存不足错误。
存储这些 jpg 的最佳方式是什么?
我能想到的只有两种方法:
- 从应用程序下载一个单独的 zip 文件?
- 可绘制文件? (使用位图不是正确的方法吗?)
- 以某种方式将它们存储在 apk 中,然后在安装应用程序之前将它们推送到设备上?(如果可能的话,因为如果我是正确的(我可能不正确),在构建 apk 时,所有东西都放在一起,一些文件变成一个)
(PS: 如果说不出来,我是新手 Android Developing)
谢谢!
代码:
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);
}
}
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));
我推荐你使用毕加索http://square.github.io/picasso/
或滑行 https://github.com/bumptech/glide
这两个可以帮助您获取和优化图像
所以我正在制作一个包含 200 多张日落照片(由 myself:P 拍摄)的应用程序。我想通过 android.R.layout.simple_gallery_item
显示它们我尝试将它们全部扔到可绘制文件夹中,然后对每个进行位图绘制并在屏幕上绘制,但出现内存不足错误。
存储这些 jpg 的最佳方式是什么?
我能想到的只有两种方法:
- 从应用程序下载一个单独的 zip 文件?
- 可绘制文件? (使用位图不是正确的方法吗?)
- 以某种方式将它们存储在 apk 中,然后在安装应用程序之前将它们推送到设备上?(如果可能的话,因为如果我是正确的(我可能不正确),在构建 apk 时,所有东西都放在一起,一些文件变成一个)
(PS: 如果说不出来,我是新手 Android Developing)
谢谢!
代码:
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);
} }
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));
我推荐你使用毕加索http://square.github.io/picasso/
或滑行 https://github.com/bumptech/glide
这两个可以帮助您获取和优化图像