为什么我的支持Gridlayout图像速度如此之慢(只有5张图像)?

时间:2016-10-11 12:14:57

标签: android xml android-layout

我正在开发一个应用程序,我需要有5到6个“主菜单”按钮。 我使用包含背景xml的线性布局创建的这些按钮使按钮具有边框。在线性布局中,有一个ImageView和一个TextView。

这意味着我目前在android.support.v7.widget.GridLayout元素中获得了5个LinearLayouts。然后将其放在滚动视图中,因为它在屏幕溢出时需要可滚动。

它在屏幕上很好地呈现了我想要的东西,但它现在只是放慢速度的方法。滚动速度非常缓慢,点击响应速度非常慢。

我已经尝试删除onclick以查看是否有任何更改但我认为它主要位于某个地方的xml中。

代码在这里:

<?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:id="@+id/layout_tab_home"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/backgroundColor"
    android:orientation="vertical">

    <android.support.v7.widget.GridLayout
        android:id="@+id/gridlayout_home"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:columnCount="2"
        app:useDefaultMargins="true">

        <LinearLayout
            android:id="@+id/relative_home_button_1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:orientation="vertical"
            android:paddingBottom="8dp"
            app:layout_columnWeight="1">

            <ImageView
                android:id="@+id/imageview_home_icon1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:padding="8dp"
                android:scaleType="fitStart"
                android:src="@drawable/icon_installationhelp"
                />
            <TextView
                android:id="@+id/textview_home_item_title1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/title_activity_installatiehulp" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/relative_home_button_2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:orientation="vertical"
            android:paddingBottom="8dp"
            app:layout_columnWeight="1">

            <ImageView
                android:id="@+id/imageview_home_icon2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:padding="8dp"
                android:scaleType="fitStart"
                android:src="@drawable/icon_productfinder"
                tools:background="@color/buttonFontColor" />

            <TextView
                android:id="@+id/textview_home_item_title2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/title_activity_producten" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/relative_home_button_3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:orientation="vertical"
            android:paddingBottom="8dp"
            app:layout_columnWeight="1">

            <ImageView
                android:id="@+id/imageview_home_icon3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:padding="8dp"
                android:scaleType="fitStart"
                android:src="@drawable/icon_materials"
                tools:background="@color/buttonFontColor" />

            <TextView
                android:id="@+id/textview_home_item_title3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/title_activity_materialen" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/relative_home_button_4"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:orientation="vertical"
            android:paddingBottom="8dp"
            app:layout_columnWeight="1">

            <ImageView
                android:id="@+id/imageview_home_icon4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:padding="8dp"
                android:scaleType="fitStart"
                android:src="@drawable/icon_dealers"
                tools:background="@color/buttonFontColor" />

            <TextView
                android:id="@+id/textview_home_item_title4"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/title_activity_verkooppunten" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/relative_home_button_5"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:orientation="vertical"
            android:paddingBottom="8dp"
            app:layout_columnWeight="1">

            <ImageView
                android:id="@+id/imageview_home_icon5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:padding="8dp"
                android:scaleType="fitStart"
                android:src="@drawable/icon_contact"
                tools:background="@color/buttonFontColor" />

            <TextView
                android:id="@+id/textview_home_item_title5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                android:text="@string/text_title_contact" />
        </LinearLayout>
    </android.support.v7.widget.GridLayout>
</ScrollView>

图片示例:Icon example

2 个答案:

答案 0 :(得分:2)

您是否尝试将RecyclerView与布局管理器一起使用?

recyclerView.setLayoutManager(new GridLayoutManager(context, columnsCount));

答案 1 :(得分:0)

对于任何绊倒这个问题的人。

我通过将图像从/ drawable移动到/ drawable-xxhdpi来解决它 我的图像在哪里以高分辨率为屏幕密度。

它没有完全解释为什么,但它可能会让你朝着正确的方向前进。