【问题标题】:running of out of memory android?运行内存不足的android?
【发布时间】:2013-11-19 12:30:43
【问题描述】:

我制作了带有画廊视图和图像视图的自定义画廊应用程序。它在 4.2 设备中运行良好,但在 2.3.3 中它的强大功能关闭

    myHorizontalListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View arg1,
                int position, long id) {
            // if (lastview != null)
            // lastview.setBackgroundColor(0xFFFFFFFF);
            // lastview = arg1;
            // arg1.setBackgroundColor(0xFFFF0000);
            ImageView imageView = (ImageView) findViewById(R.id.image);
            p=position;

            imageView.setBackgroundResource(itemsArray[position]);}}

我认为这段代码导致内存不足,因为每次我在旧图片下设置新图片

                 imageView.setBackgroundResource(itemsArray[position])

【问题讨论】:

  • 你的问题到底是什么?
  • 另一个原因是您使用大尺寸图像,减少可能工作正常
  • 由于图像的高分辨率导致内存不足,......所以你需要降低图像的分辨率,并创建一个新的调整该图像的位图对象..
  • @PiyushGupta 是的,我做到了 .Thanx ..
  • @Shayanpourvatan ya 我已经减少了谢谢

标签: android android-imageview android-gallery


【解决方案1】:

使用后清除 itemsArray(可能在最后)并尝试减小图像大小!

【讨论】:

    【解决方案2】:

    我建议您清除图像并使其内存可共享 (android - unload ImageView image from memeory when it goes off screen inside ScrollView)。这(有点,谷歌它以获得更深入的解释)在 ICS+ 上自动发生。

    【讨论】:

      【解决方案3】:
      1. 检查是否根据应用需要释放内存。 2.是图像尺寸或大于要求的尺寸,还是高清图像。

      如果是,第三个选项是使用这个:

      将以下内容添加到清单中的应用程序标签中

      android:largeHeap="true"
      

      它将帮助您为您的应用程序获取更多堆。

      【讨论】:

        【解决方案4】:

        在 imageview 中以较小的尺寸重新加载你的图像

        http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

        【讨论】:

          猜你喜欢
          • 2012-05-17
          • 1970-01-01
          • 1970-01-01
          • 2013-06-20
          • 2013-09-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多