2017-02-12 133 views
0

我是一名非常初学者,作为android开发人员,我想为我的任务构建一个样机应用程序。我能够对应用程序进行编程并使其正常工作,但是当我将它安装到手机上时,每次我要载入新节/片段时都会崩溃。在片段上加载图片,android studio

我得出这样的结论:崩溃是由于对可绘制文件夹的图像的过度使用导致由于高资源需求而导致崩溃。所以我需要使用assets文件夹来加载图像。

但直到现在,我还没有想出一种方法来加载资源文件夹中的图像片段。 findViewById,输入流,全部导致未知的方法错误。

任何人的帮助将不胜感激。

源代码和APK可以在这里找到:https://drive.google.com/drive/folders/0B1_AQxgFWCzuT0Vxdkx0cmxQMG8?usp=sharing

+0

你会得到什么错误?你能分享logcat吗? – tahsinRupam

+0

@tahsinRupam在这里你去。 [logcat的文件](https://drive.google.com/file/d/0B1_AQxgFWCzuWjVGR1lWNjRTcTA/view?usp=sharing)。 好奇我也得到一个警示'I /编舞:跳过39帧!该应用程序可能在其主线程上做了太多工作。“当点击按钮时。该应用程序非常滞后 –

回答

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; 
} 

据我所知,在可绘制文件夹上使用assets文件夹没有任何优势。

+0

感谢您的帮助!我现在试试看看它是否有效 –