首页 文章

我的应用程序可能在其主线程上做了太多工作

提问于
浏览
0

我是一个新的Android Studio程序员,我有这个错误,有时会让我的应用程序崩溃 . 我将6个ImageView放入一个带有12个按钮的布局中,我的应用程序说“I / Choreographer:跳过了699帧!应用程序可能在其主线程上做了太多工作 . ”当我开始布局 . 我怎么解决这个问题?继承人的代码

<?xml version="1.0" encoding="utf-8"?>
<ImageView
        android:layout_width="150dp"
        android:layout_height="60dp"
        android:background="@drawable/frappesbutton2"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/buttonc2"
        android:layout_toStartOf="@+id/buttonc2" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frapeonemarco2"
        android:layout_marginTop="21dp"
        android:id="@+id/imageView2"
        android:layout_below="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc1"
        android:onClick="checkf1"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView2"
        android:layout_toRightOf="@+id/imageView2"
        android:layout_toEndOf="@+id/imageView2" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA1"
        android:onClick="addf1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc1"
        android:layout_alignLeft="@+id/buttonc1"
        android:layout_alignStart="@+id/buttonc1" />
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frapeonemarco3"
        android:id="@+id/imageView3"
        android:layout_alignTop="@+id/buttonc1"
        android:layout_toRightOf="@+id/buttonc1"
        android:layout_toEndOf="@+id/buttonc1"       />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc2"
        android:onClick="checkf2"
        android:text="@string/Check"
        android:layout_above="@+id/buttonA2"
        android:layout_alignLeft="@+id/buttonA2"
        android:layout_alignStart="@+id/buttonA2" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA2"
        android:onClick="addf2"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc1"
        android:layout_toRightOf="@+id/imageView3"
        android:layout_toEndOf="@+id/imageView3" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src= "@drawable/oreofrappe"
        android:layout_below="@+id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="37dp"
        android:id="@+id/imageView4" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc3"
        android:onClick="checkf3"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView4"
        android:layout_toLeftOf="@+id/imageView3"
        android:layout_toStartOf="@+id/imageView3" />

    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA3"
        android:onClick="addf3"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc3"
        android:layout_toRightOf="@+id/imageView4"
        android:layout_toEndOf="@+id/imageView4" />
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frappeoriginal3"
        android:layout_alignTop="@+id/buttonc3"
        android:layout_alignLeft="@+id/imageView3"
        android:layout_alignStart="@+id/imageView3"
        android:id="@+id/imageView5" />

    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc4"
        android:onClick="checkf4"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView5"
        android:layout_toRightOf="@+id/imageView5"
        android:layout_toEndOf="@+id/imageView5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA4"
        android:onClick="addf4"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc4"
        android:layout_toRightOf="@+id/imageView5"
        android:layout_toEndOf="@+id/imageView5" />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="60dp"
        android:background="@drawable/frappesbutton"

        android:layout_marginTop="22dp"
        android:id="@+id/imageView7"
        android:layout_below="@+id/imageView5"
        android:layout_alignRight="@+id/imageView5"
        android:layout_alignEnd="@+id/imageView5" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/firstcoffee"

        android:id="@+id/imageView6"
        android:layout_below="@+id/imageView7"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="27dp" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc5"
        android:onClick="checkc1"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView6"
        android:layout_toLeftOf="@+id/imageView5"
        android:layout_toStartOf="@+id/imageView5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA5"
        android:onClick="addc1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc5"
        android:layout_alignLeft="@+id/buttonc5"
        android:layout_alignStart="@+id/buttonc5" />





    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/segundocafe"
        android:id="@+id/imageView8"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/buttonc5"
        android:layout_toEndOf="@+id/buttonc5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc6"
        android:onClick="checkc2"
        android:text="@string/Check"
        android:layout_alignBaseline="@+id/buttonc5"
        android:layout_alignBottom="@+id/buttonc5"
        android:layout_toRightOf="@+id/imageView7"
        android:layout_toEndOf="@+id/imageView7" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA6"
        android:onClick="addc1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc5"
        android:layout_toRightOf="@+id/imageView7"
        android:layout_toEndOf="@+id/imageView7" />

</RelativeLayout>

这就是我想要做的事:Emulator Preview

应用程序运行,但速度很慢,可能会崩溃 .

2 回答

  • 1

    也许你的图像尺寸太大了 . 如果太大,请检查它们的分辨率并调整它们的大小 . 不要使用超过800 * 800的图像,并通过在右侧可绘制文件夹中放置合适的图像,尝试为不同设备设置不同的图像 .

  • -1

    试试:

    <application
        android:largeHeap="true"
        tools:replace="android:theme,android:icon" >
    

    并将 drawable 放在每个 drawable 文件夹中 . 不要只在 drawable-xhdpi 或其他中放置drawable.Put drawable in drawable-xhdpi drawable-xxhdpi drawable-hdpi .

    因为如果你没有适合自己的手机 . drawable将是scale和cast memory .

相关问题