首页 > 解决方案 > 如何在Android中使用滚动视图而不滞后

问题描述

我试图优化我的一个应用程序并且遇到了这个问题:我有 2 个相同的滚动视图布局,这两个布局之间的唯一区别是背景图像。一种布局具有一个大小约为 400kb 的图像作为背景。第二种布局有一个大小约为 300kb 的图像作为背景。

400kb 图像的布局平滑干净,而 300kb 图像的布局缓慢且滞后。

我不明白这种奇怪行为的原因......你们能帮帮我吗?

这是一个布局示例:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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"
    android:background="@drawable/pergamena_background_2">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="15dp"
                app:srcCompat="@drawable/storica_baldr" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="top|center"
                android:text="blablabla"
                android:textAllCaps="false"
                android:textAppearance="@style/TextAppearance.AppCompat"
                android:textSize="17sp"
                app:fontFamily="@font/almendra_italic" />


            <TextView
                android:id="@+id/baldr_textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="55dp"
                android:paddingTop="20dp"
                android:paddingRight="55dp"
                android:paddingBottom="0dp"
                android:text="@string/Baldr1"
                android:textAllCaps="false"
                android:textAppearance="@style/TextAppearance.AppCompat"
                android:textSize="17sp"
                android:textStyle="italic"
                app:fontFamily="sans-serif" />

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="40dp"
                android:paddingTop="20dp"
                android:paddingRight="40dp"
                android:paddingBottom="20dp"
                android:scaleType="fitXY"
                app:srcCompat="@drawable/text_divider" />

            <TextView
                android:id="@+id/baldr_textView2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingLeft="55dp"
                android:paddingTop="0dp"
                android:paddingRight="55dp"
                android:paddingBottom="45dp"
                android:text="@string/Baldr2"
                android:textAllCaps="false"
                android:textAppearance="@style/TextAppearance.AppCompat"
                android:textSize="17sp"
                android:textStyle="italic"
                app:fontFamily="sans-serif" />
        </LinearLayout>

</ScrollView>

标签: androidoptimizationuiscrollviewscrollviewlag

解决方案


基于此答案,解决此问题的最佳方法是将图像移动到drawable-nodpi文件夹。对我来说这有效。


推荐阅读