【问题标题】:Android ViewPager + GridView with images taking too much HEAP MemoryAndroid ViewPager + GridView 图像占用过多的 HEAP 内存
【发布时间】:2013-04-16 03:28:59
【问题描述】:

我正在尝试为我的游戏制作关卡选择器,现在它可以工作了,但是在某些手机上它真的很慢,而且有时不工作 (FC),我意识到它使用了太多的堆内存。

我是android dev的新手,所以这是我的代码,希望你能帮助我。

查看器的活动:

   setContentView(R.layout.level_selector);
   ViewPagerAdapter adapter = new ViewPagerAdapter(this);
   ViewPager myPager = (ViewPager) findViewById(R.id.mypagerwontwork); //cool id huh
   myPager.setAdapter(adapter);
   myPager.setCurrentItem(0);

查看寻呼机适配器:

  public Object instantiateItem(View collection, int position) {
       LayoutInflater inflater = (LayoutInflater)    activity.getSystemService(activity.LAYOUT_INFLATER_SERVICE);
     if(position == 0)
     {
         View layout = inflater.inflate(R.layout.world1, null);
         final GridView gridview = (GridView) layout.findViewById(R.id.gridLvl);
         gridview.setAdapter(new LevelAdapter(activity,"World1"));
         gridview.setOnItemClickListener(itemClickListener);
         ((ViewPager) collection).addView(layout); 
         return layout;
     }

网格视图适配器:

public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
        if (mWorld.equals("World1"))
        {
            imageView.setImageResource(World1[position]);
        }

有用信息:

  • 有 3 个“世界”(查看页面),每个都有不同的背景
  • 每个“世界”有 15 张图片,编号从 1 到 15。
  • 图片大小为:+- 12kb
  • BG 大小为:+- 140kb

我希望它很清楚。

谢谢。

【问题讨论】:

  • 你计算过这些图片会占用多少内存吗?

标签: android gridview android-viewpager


【解决方案1】:

我发现我的图片太大了,不是尺寸,而是分辨率。

我不得不将它们调整为 ldpi、mdpi 和 hdpi。

这些尺寸可以在以下位置找到:

Android activity image background size

Button Image size in android

【讨论】:

    【解决方案2】:

    您应该避免在 getView 方法中创建对象(例如在您的网格视图适配器中)。相反,您可以使用 ViewHolder 模式:

    http://www.jmanzano.es/blog/?p=166

    【讨论】:

      猜你喜欢
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多