如何在Android中使用滚动视图而不会滞后

时间:2019-01-18 10:09:30

标签: android optimization uiscrollview scrollview lag

我正在尝试优化我的应用程序之一,但遇到了以下问题: 我有2个IDENTICAL scrollView布局,这两个布局之间的唯一区别是背景图像。 一种布局具有作为背景的大约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>

2 个答案:

答案 0 :(得分:1)

基于this answer的最佳解决方法是将图像移动到 drawable-nodpi 文件夹。 对我来说这行得通。

答案 1 :(得分:0)

可能由于以下原因而出现差异:

  • 不同的文件扩展名
  • 不同的驱动器(具有不同的读取速度)

但是您真正的问题可能只是错误的应用程序架构。