跳过66帧!应用程序可能在其主线程上做了太多工作

时间:2015-07-19 15:26:30

标签: java android multithreading

所以,我在CardView中有一个带有Image Buttons和TextViews的活动。出于某种原因,每当我尝试在应用程序中打开活动时,它需要一段时间才能打开,在控制台中它会给我这样的信息:跳过66帧!应用程序可能在其主线程上做了太多工作。当我删除图像按钮时,活动正常加载?有谁知道为什么?

`

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        >

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp"
            card_view:cardElevation="10dp"
            >

            <TextView
                android:id="@+id/info_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Locanda La Sementa"
                android:padding="8dp"
                android:background="#424242"
                android:textColor="@android:color/white"
                android:layout_alignParentBottom="true"
                android:gravity="bottom"
                />

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:src="@drawable/semanta"
                android:scaleType="fitXY"
                android:id="@+id/semata"
                android:background="@null"
                />

        </android.support.v7.widget.CardView>


        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view2"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp"
            card_view:cardElevation="10dp"
            android:layout_below="@+id/card_view"
            >

            <TextView
                android:id="@+id/info_text3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="L’Altro Frantoio"
                android:padding="8dp"
                android:background="#424242"
                android:textColor="@android:color/white"
                android:layout_alignParentBottom="true"
                android:gravity="bottom"
                />

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:src="@drawable/fran"
                android:scaleType="centerCrop"
                android:id="@+id/frantoio"
                android:background="@null"
                />

        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view3"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp"
            card_view:cardElevation="10dp"
            android:layout_below="@+id/card_view2"
            >

            <TextView
                android:id="@+id/info_text2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Domus Hernica"
                android:padding="8dp"
                android:background="#424242"
                android:textColor="@android:color/white"
                android:layout_alignParentBottom="true"
                android:gravity="bottom"
                />

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:src="@drawable/ernica"
                android:scaleType="centerCrop"
                android:id="@+id/ernica"
                android:background="@null"
                />

        </android.support.v7.widget.CardView>


        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view4"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp"
            card_view:cardElevation="10dp"
            android:layout_below="@+id/card_view3"
            >

            <TextView
                android:id="@+id/info_text4"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="Pizzeria la Ciocia"
                android:padding="8dp"
                android:background="#424242"
                android:textColor="@android:color/white"
                android:layout_alignParentBottom="true"
                android:gravity="bottom"
                />

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:src="@drawable/ciocia"
                android:scaleType="centerCrop"
                android:id="@+id/ciocia"
                android:background="@null"
                />

        </android.support.v7.widget.CardView>


        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view6"
            android:layout_gravity="center"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp"
            card_view:cardElevation="10dp"
            android:layout_below="@+id/card_view4"
            >

            <TextView
                android:id="@+id/info_text6"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="L'Aia Antica"
                android:padding="8dp"
                android:background="#424242"
                android:textColor="@android:color/white"
                android:layout_alignParentBottom="true"
                android:gravity="bottom"
                />

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="170dp"
                android:src="@drawable/laia_antica"
                android:scaleType="centerCrop"
                android:id="@+id/antica"
                android:background="@null"
                />

        </android.support.v7.widget.CardView>

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:height="80dp"
            android:text="More"
            android:textSize="17dp"
            android:id="@+id/more_Button"
            android:layout_below="@+id/card_view6"
            android:background="#424242"
            android:textColor="@android:color/white"
            />

    </RelativeLayout>
</ScrollView>

`

3 个答案:

答案 0 :(得分:1)

ImageButton中,图像可能太大,图像可能太多或两者结合。 xml属性android:src使用ImageView.setImageResource()来对UI线程进行解码。另请注意,ImageButton是一个ImageView

另见the docs

答案 1 :(得分:0)

如果您没有使用RelativeLayout以非线性的方式将您的孩子相对于彼此放置,请考虑使用LinearLayout。 RelativeLayout需要两个布局过程来布局其内容。

此外,如果没有立即显示,您可能希望将某些视图移动到ViewStub中。

答案 2 :(得分:0)

我通过不使用xml src标记但以编程方式设置imageviewers位图来避免此问题。