我使用Android进行新编程,我在ADT中遇到一个非常简单的示例问题,我在每个FrameLayout中只有2个ImageView,但是当我用手机测试它时,应用程序在它没有的时候变得很慢任何逻辑原因我没有碰到java文件夹。
这是我遇到的错误
12-16 16:17:43.261 18238-18238/com.example.brank.acocinapp I/Choreographer: Skipped 64 frames! The application may be doing too much work on its main thread.
12-16 16:17:44.781 18238-18248/com.example.brank.acocinapp W/art: Suspending all threads took: 26.044ms
12-16 16:17:44.831 18238-18238/com.example.brank.acocinapp W/PathParser: Points are too far apart 4.000000596046461
这是我的content_main.xml的 我必须提一下,如果我评论两个FrameLayout中的一个,问题就不存在了。提前谢谢。 编辑:我还将2个图像放在Drawable文件夹中(我不知道这是否会影响)但我在教程中看到我必须将图像放在Drawable的子文件夹中(mdpi) ,hdpi,xhdpi,xxhdpi)问题是这个子文件夹不存在所以我将我的图像粘贴到Drawable中。 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.brank.acocinapp.MainActivity">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/frameLayout2"
android:layout_alignParentBottom="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView3"
android:adjustViewBounds="true"
android:src="@drawable/home2" />
</FrameLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/frameLayout"
android:layout_alignParentTop="true">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView2"
android:src="@drawable/home1"
android:adjustViewBounds="true"/>
</FrameLayout>
</RelativeLayout>
答案 0 :(得分:3)
好的可能会发生的是,操作系统正在尝试对您的图像进行大量处理,您可能选择了高分辨率。您可以做的是尝试创建图像的多个分辨率(mdpi,hdpi,xhdpi,xxhdpi)。你可以将图像的标准尺寸作为mdpi,并分别以1.5,2,3的比例增加它们的尺寸,用于hdpi,xhdpi,xxhdpi。当你将这些图像放入可绘制的文件夹中时,如果你不让它们自己创建它们。有时这甚至可能导致Android中的OOM。一篇文章explaining。
答案 1 :(得分:0)
您应该查看AsyncTask
和Thread
的文档
Main Threads and Worker Threads
发生的事情是你在主线程中执行了很多消耗cpu的进程,这可能会导致主UI线程挂起。解决方案是在工作线程中执行整个图像处理,并保持主线程仅用于UI交互。