【问题标题】:Load image on fragment, android studio在片段上加载图像,android studio
【发布时间】:2017-02-12 11:57:32
【问题描述】:

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

我的结论是崩溃是由于过度使用drawable文件夹中的图像造成的,由于资源需求高而导致崩溃。所以我需要使用 assets 文件夹来加载图像。

但是直到现在,我还没有想出从片段上的资产文件夹加载图像的方法。 findViewById, inputstream,都导致了一个未知的方法错误。

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

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

【问题讨论】:

  • 您遇到什么错误?你能分享一下logcat吗?
  • @tahsinRupam 给你。 Logcat File。奇怪的是,我在单击按钮时也收到了警告I/Choreographer: Skipped 39 frames! The application may be doing too much work on its main thread.。应用程序非常滞后

标签: java android android-fragments crash


【解决方案1】:

如果您将大图像加载到 ImageViews 中,您应该使用图像加载库。我会推荐 Glide:https://github.com/bumptech/glide(在 Github 页面上有关于如何在项目中包含 Glide 以及如何使用它的说明)。

以这种方式加载图像应该可以解决性能不佳的问题,但是您也应该小心在项目中存储大量高分辨率图像,因为它会大大增加您的应用程序的大小。

为了在片段中使用 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 文件夹而不是 drawable 文件夹没有任何优势。

【讨论】:

  • 感谢您的帮助!我现在就试试看是否有效
猜你喜欢
  • 2018-08-14
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-26
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
相关资源
最近更新 更多