我是Android开发人员的初学者,我想为我的任务构建一个模型应用程序。我能够对应用程序进行编程并使其正常工作,但是当我在手机上安装它时,每次我想要加载新的部分/片段时都会崩溃。
我的结论是崩溃是由于过度使用可绘制文件夹中的图像,导致由于资源需求过高导致崩溃。所以我需要使用assets文件夹加载图片。
但到目前为止,我还没有找到一种方法从fragment上的assets文件夹加载图像。 findViewById,inputstream ,都导致了未知的方法错误。
任何人的帮助都会很高兴。
可以在此处找到源代码和APK: https://drive.google.com/drive/folders/0B1_AQxgFWCzuT0Vxdkx0cmxQMG8?usp=sharing
答案 0 :(得分:0)
如果您要将大图像加载到ImageViews中,则应该使用图像加载库。我建议Glide:https://github.com/bumptech/glide(有关于如何在项目中包含Glide以及如何在Github页面上使用它的说明。)
以这种方式加载图像应该可以解决性能不佳的问题,但是在项目中存储大量高分辨率图像时也要小心,因为它会大大增加应用程序的大小。
为了在片段中使用 findViewById ,你应该像这样使用 onCreateView 方法(我在我的例子中使用了ImageView):
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.your_layout, container, false);
ImageView imageView = (ImageView) view.findViewById(R.id.image_view);
return view;
}
据我所知,在drawable文件夹上使用assets文件夹没有任何好处。