Фоновое изображение замедляет рециркуляцию - PullRequest
0 голосов
/ 29 января 2019

У меня есть приложение, которое содержит представление фонового изображения и представление переработчика.Когда я масштабирую fitxy к фоновому изображению, прокрутка представления замедляется.Когда я удаляю bg, масштаб изображения прокручивается быстро.Но я не могу использовать просмотр изображений без масштабирования по размеру xy, потому что даже размер моих изображений, такой же, как у изображений с размером экрана, не заполняет весь экран.Мои изображения на устройстве хранения.Я читаю изображение как растровое изображение и устанавливаю растровое изображение компонента изображения.

Редактировать: я забыл о важном моменте: производительность Android 5 или 5+ лучше, чем у Android 4. Но Android 5 лучше, чем у прокрутки с 4-мя переработчиками, все еще не сглажена.
Я пробовал Glide для загрузки изображений впросмотр изображений, но результативность все еще низкая.Код загрузки изображения:

   File f = new File(Constants.SETTINGS_MEDIA_LOCAL_FOLDER, 
   ApplicationManager.ShopSet.getMenuPageBackImage());
        Glide.with(ProductListActivity.this).load(Constants.FOLDERS_PREFIX + 
        f.getPath()).into(iv`enter code here`CategoryBg);

Мой макет xml:

    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
   android:layout_height="match_parent">
    <ImageView
    android:id="@+id/ivProductListBg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY"
   />

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

    <LinearLayout
        android:id="@+id/llCategoryHeader"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_weight=".5"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:orientation="horizontal">

            <LinearLayout
                android:id="@+id/llBackButtonProductList"
                android:layout_width="130dp"
                android:layout_height="56dp"
                android:layout_alignParentLeft="true"
                android:layout_marginTop="30dp"
                android:clickable="true"
                android:orientation="horizontal">


                <TextView
                    android:id="@+id/tvBackButtonProductList"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_weight="2"
                    android:padding="5dp"
                    android:text="Back"
                    android:textAlignment="center"
                    android:textColor="@color/colorWhite"
                    android:textSize="24dp" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="280dp"
                android:layout_height="120dp"
                android:layout_centerInParent="true"
                android:orientation="horizontal">

                <ImageView
                    android:id="@+id/ivProductListLogo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/llCartButtonProductList"
                android:layout_width="130dp"
                android:layout_height="56dp"
                android:layout_alignParentRight="true"
                android:layout_marginTop="30dp"
                android:orientation="horizontal">

                <TextView
                    android:id="@+id/tvCartButtonProductList"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_weight="2"
                    android:padding="5dp"
                    android:text="0,00"
                    android:textAlignment="center"
                    android:textColor="@color/colorWhite"
                    android:textSize="24dp" />
            </LinearLayout>

        </RelativeLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/llProductListHeader"
        android:layout_weight=".25"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5">

                <TextView
                    android:id="@+id/tvProductListCategoryName"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center_vertical"
                    android:paddingLeft="25dp"
                    android:text="METE"
                    android:textColor="@color/black"
                    android:textSize="28dp"
                    android:textStyle="bold" />


            </LinearLayout>


            <LinearLayout
                android:id="@+id/llProductListViewChoose"
                android:layout_width="150dp"
                android:layout_height="30dp"
                android:layout_alignParentRight="true"
                android:layout_gravity="bottom"
                android:layout_marginRight="5dp"
                android:layout_marginBottom="10dp"
                android:background="@drawable/border"
                android:orientation="horizontal"
                android:visibility="invisible">

                <LinearLayout
                    android:id="@+id/llProductListSingleViewChoose"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_margin="1dp"
                    android:layout_weight="1"
                    android:gravity="center">

                    <ImageView
                        android:id="@+id/ivProductListSingleView"
                        android:layout_width="46dp"
                        android:layout_height="28dp"
                        android:layout_gravity="center"
                        android:scaleType="center"
                        android:src="@drawable/singleviewbutton" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/llProductListDoubleViewChoose"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_margin="1dp"
                    android:layout_weight="1"
                    android:gravity="center">

                    <ImageView
                        android:id="@+id/ivProductListDoubleView"
                        android:layout_width="46dp"
                        android:layout_height="28dp"
                        android:layout_gravity="center"
                        android:scaleType="centerInside"
                        android:src="@drawable/doubleviewbutton" />
                </LinearLayout>


            </LinearLayout>

        </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/llProductListHeader2"
        android:layout_weight=".25"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="3">

                <TextView
                    android:id="@+id/tvProductListCategoryInfo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center_vertical"
                    android:paddingLeft="25dp"
                    android:text="METE"
                    android:textColor="@color/black"
                    android:textSize="21dp" />

            </LinearLayout>


        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_below="@+id/llProductListHeader2"
        android:layout_weight=".30"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:visibility="invisible">

            <View
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="1" />

            <ImageView
                android:id="@+id/img_LanguageProductList"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_marginRight="5dp"
                android:scaleType="fitXY"
                android:src="@drawable/language" />
        </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_below="@+id/llCategoryList"
        android:layout_weight="4"
        android:orientation="vertical"
        android:paddingLeft="5dp"
        android:paddingRight="5dp">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerviewProductList"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="visible">

        </android.support.v7.widget.RecyclerView>

        <ListView
            android:id="@+id/listviewProductList"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="5dp"
            android:scrollingCache="false"></ListView>


    </LinearLayout>


</LinearLayout>

ivProductListBg - это мой bg просмотр изображений.С тем же кодом, если я удаляю ivProductListBg android: scaleType = "fitXY", все в порядке, но когда я добавляю android: scaleType = "fitXY", свойство recyclerview прокручивается, прокрутка замедляется.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Проверьте следующую документацию по Android

Существует несколько библиотек, которые следуют рекомендациям по загрузке изображений.Вы можете использовать эти библиотеки в своем приложении для загрузки изображений наиболее оптимизированным способом.Мы рекомендуем библиотеку Glide, которая загружает и отображает изображения максимально быстро и плавно.Другие популярные библиотеки загрузки изображений включают Пикассо из Square и Fresco из Facebook.Эти библиотеки упрощают большинство сложных задач, связанных с растровыми изображениями и другими типами изображений в Android.

0 голосов
/ 29 января 2019

Полагаю, это может быть связано с размером изображения, которое вы используете.Убедитесь, что это не очень тяжелый файл.

Вы можете попробовать сжать его или изменить его размер.

...