所以,我在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>
`
答案 0 :(得分:1)
在ImageButton
中,图像可能太大,图像可能太多或两者结合。 xml属性android:src
使用ImageView.setImageResource()
来对UI线程进行解码。另请注意,ImageButton
是一个ImageView
。
另见the docs。
答案 1 :(得分:0)
如果您没有使用RelativeLayout以非线性的方式将您的孩子相对于彼此放置,请考虑使用LinearLayout。 RelativeLayout需要两个布局过程来布局其内容。
此外,如果没有立即显示,您可能希望将某些视图移动到ViewStub中。
答案 2 :(得分:0)
我通过不使用xml src标记但以编程方式设置imageviewers位图来避免此问题。