膨胀自定义视图的Android性能问题

时间:2013-09-16 15:30:06

标签: android performance android-inflate

我创建了一个特定年份显示的月份图块网格的自定义视图。

它包含代表每个月的12个日期图块。 它看起来像这样:

enter image description here

使用以下XML对每个磁贴进行充气:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:gravity="center_horizontal|center_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/date_tile_margin"
        android:layout_marginRight="@dimen/date_tile_margin"
        android:layout_marginTop="2dp"
        android:layout_marginBottom="2dp">

    <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        <Button
                android:id="@+id/dateTile"
                android:layout_height="@dimen/date_tile_height"
                android:layout_width="@dimen/date_tile_width"
                android:textColor="#B7BAAB"
                />

        <com.endilo.views.LetterSpacingTextView
                android:id="@+id/dateTileCenterLabel"
                android:layout_width="@dimen/date_tile_height"
                android:layout_height="@dimen/date_tile_width"
                android:gravity="center_vertical|center_horizontal"
                android:scaleX="0.6"
                android:textSize="40sp"
                android:textColor="#BCBFAF"/>

    </FrameLayout>

    <CheckBox
            android:id="@+id/dateTileCheckbox"
            android:button="@drawable/check_green"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="-20dp"
            android:focusable="false"/>

    <TextView
            android:id="@+id/dateTileMonthLabel"
            android:layout_width="wrap_content"
            android:layout_marginTop="-12dp"
            android:text="Jan"
            android:layout_height="wrap_content"/>

</LinearLayout>

在谈论单个DateTile任务时,每个DateGridView需要大约30-50毫秒才能充气〜{40} 12 = 0.5秒来膨胀一年。 我需要在leas 3页面上充气,因为我在显示上一年和下一年的页面适配器中使用它。

有没有办法让通货膨胀更快或重复使用相同的布局来更快地创建12个单独的日期牌?

0 个答案:

没有答案