Как использовать прокрутку в Android без задержек

Я пытался оптимизировать одно из своих приложений, и у меня возникла эта проблема: у меня есть 2 ИДЕНТИЧНЫХ макета scrollView, единственная разница между этими двумя макетами - это фоновое изображение. Один макет имеет в качестве фона одно изображение размером около 400кб. Второй макет имеет в качестве фона одно изображение размером около 300кб.

Макет с изображением 400кб плавный и чистый, а макет с изображением 300кб медленный и лагает.

Я не понимаю причину такого странного поведения... Ребята, вы можете мне помочь?

Это пример макета:

<?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>


person Fyd Rose    schedule 18.01.2019    source источник
comment
Попробуйте поставить такое же не тормозящее изображение даже в тормозящем ScrollView и проверьте результат. Если задержка сохраняется, это означает, что что-то сделано в ScrollView/content. Вместо этого, если лаги исчезли, это означает, что проблема заключается в изображении. Может быть, прозрачный/альфа-канал?   -  person emandt    schedule 18.01.2019
comment
Предоставьте код   -  person Irwin Nawrocki    schedule 18.01.2019
comment
Попробуйте использовать github.com/bumptech/glide, так как это принесет вам много пользы.   -  person Irwin Nawrocki    schedule 18.01.2019
comment
Я добавил пример макета   -  person Fyd Rose    schedule 18.01.2019
comment
Проблема в изображении, но, как я уже сказал, я не понимаю, почему. Тем более, что это изображение светлее, чем первое...   -  person Fyd Rose    schedule 19.01.2019


Ответы (2)


на основе этого ответа лучший способ решить эту проблему - переместить ваши изображения в drawable-nodpi папка. для меня это сработало.

person Omid Fast    schedule 05.03.2020

Разница может возникнуть из-за:

  • другое расширение имени файла
  • другой диск (с разной скоростью чтения)

Но ваша настоящая проблема может заключаться в неправильной архитектуре приложения.

person Irwin Nawrocki    schedule 18.01.2019
comment
Проблема не в другом расширении файла - person Fyd Rose; 18.01.2019
comment
И ни другой драйв-тест - person Fyd Rose; 19.01.2019