成长堆(frag case)。最大化性能

时间:2013-05-16 10:45:21

标签: java android scrollview

我的应用有问题。 我的活动包含以下xml代码:

<ScrollView
    android:id="@+id/main_scroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/layout_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingLeft="16sp"
        android:paddingRight="16sp"
        android:paddingTop="16sp" >
    </LinearLayout>
</ScrollView>

使用inflate,插入包含图像.png的LinearLayout! 这会导致Grow heap(frag case)。 有一种方法可以减少堆的增长,维持这种设置吗?

这是插入MainActivity的布局:

<LinearLayout
    android:id="@+id/layout_scheda_serie"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text_scheda_nome"
        style="?android:textAppearanceLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="italic" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?android:selectableItemBackground"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/text_scheda_simbolo"
            style="?android:textAppearanceLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25sp"
            android:textStyle="italic" />

        <TextView
            android:id="@+id/text_scheda_numero"
            style="?android:textAppearanceLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="25sp"
            android:textStyle="italic" />

        <TextView
            android:id="@+id/text_scheda_massa"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/secondary_text_light_nodisable" />

        <TextView
            android:id="@+id/text_scheda_ossidazione"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/secondary_text_light_nodisable" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="right"
        android:orientation="vertical"
        android:padding="5sp" >

        <com.chElem.RecyclingImageView
            android:id="@+id/imageView_scheda_foto"
            android:layout_width="165sp"
            android:layout_height="165sp"
            android:src="?android:selectableItemBackground" />
    </LinearLayout>
</LinearLayout>

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确地理解了你的问题,那么答案很遗憾就是答案,你无法避免这种情况。

当您将Activity的布局和多个图像加载到内存中时,堆使用量将不可避免地增长。