ImageView非常慢

时间:2015-12-31 00:54:08

标签: android imageview scrollview

我遇到的问题是我的ScrollView速度很慢而且很迟钝。

每次滚动时都会收到这些警告:

Skipped 146 frames!  The application may be doing too much work on its main thread.

这是我的XML文件:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/c1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:src="@drawable/course1" />

    <TextView
        android:id="@+id/c1text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/c1"
        android:gravity="center"
        android:text="BlaBla1"
        android:textSize="20sp"
        android:textStyle="bold" />

    <ImageView [...] />

    <TextView [...] />

    [more ImageViews and TextViews]
</RelativeLayout>

有哪些解决方案可以优化图像的加载?

2 个答案:

答案 0 :(得分:3)

最明显的解决方案是使用Android预期的ListView

使用ListView的原因是它可以回收其显示,从而保持最小的内存占用。与ViewHolder pattern甚至PicassoGlide库结合使用,它可以轻松地进行预加载和缓存,并为您提供更好的性能。

不幸的是,唯一的选择是在后台手动预加载图像,但这会通过内存消耗,并可能会关闭您的应用程序。

答案 1 :(得分:0)

可能您的图像的分辨率超出了屏幕所需的分辨率。如果可能,请提前重新缩放图像。