2013-07-22 23 views
6

我打開了GPU在開發人員設置中透支覆蓋圖,發現我的應用程序沒有很好優化,我不確定在哪裏更改它以使其工作更好一些。這是它的一個圖像。優化和降低GPU透支 - Android

enter image description here

紅色的部分是一個ListView的一部分,因此這正是我不知道如何優化它,同時保持相同的風格。 下面是每個ListView的部分layout.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/background_card" 
android:orientation="horizontal" 
android:padding="5dip" > 

<ImageView 
    android:id="@+id/list_image" 
    android:layout_width="50dip" 
    android:layout_height="50dip" 
    android:src="@drawable/gta5thumb" 
    android:padding="3dip" 
    android:background="@drawable/image_bg" 
    android:layout_centerVertical="true"/> 





<TextView 
    android:id="@+id/title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@id/list_image" 
    android:layout_toRightOf="@id/list_image" 
    android:text="Grand Theft Auto 5" 
    android:textColor="#040404" 
    android:textSize="18sp" 

    android:layout_marginLeft="4dp" 
    android:textStyle="bold"/> 

<TextView 
    android:id="@+id/date1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/title" 
    android:textColor="#343434" 
    android:textSize="14sp" 
    android:layout_marginTop="1dip" 
    android:layout_toRightOf="@id/list_image" 
    android:layout_marginLeft="4dp" 
    android:text="17th September 2013" /> 
<TextView 
    android:id="@+id/date2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/date1" 
    android:textColor="#343434" 
    android:textSize="14sp" 
    android:layout_marginTop="1dip" 
    android:visibility="visible" 
    android:layout_marginLeft="4dp" 
    android:layout_toRightOf="@id/list_image" 
    android:text="17th September 2013" /> 
<TextView 
    android:id="@+id/date3" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="#343434" 
    android:textSize="14sp" 
    android:layout_marginLeft="4dp" 
    android:text="17th September 2013" 
    android:layout_below="@+id/date2" 
    android:layout_toRightOf="@+id/list_image"/> 

<TextView 
    android:id="@+id/platforms" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@id/title" 
    android:gravity="right" 
    android:text="360, PS3" 
    android:layout_marginRight="3dip" 
    android:textSize="12sp" 
    android:textColor="#10bcc9" 
    android:textStyle="bold"/> 

<!-- Rightend Arrow -->  
<ImageView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/arrow" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true"/> 

</RelativeLayout> 

我真的失去了與整理了這一點,我很樂意爲您可能希望將有助於緩解這種正在發生的GPU透支的任何其他文件。我不確定該做什麼,因爲它是一個ListView,因此無法輕鬆更改。請記住風格需要保持儘可能接近。

回答

5

RelativeLayout和孩子你的行似乎不是問題。相反,它是背後的東西。

你應該閱讀Romain Guy's epic blog post診斷jank(或類似覆蓋::咳嗽::着名的Android開發者書籍)。具體來說,使用層次結構視圖來確定什麼是根據什麼進行分層,並試圖徹底擺脫不必要的層,或者如果顏色完全與Z軸上的某些東西重疊,則至少使它們透明。

其中一些可能需要改變您的設計,或者可能需要重大複雜才能實現您目前的樣子。例如,填充的5dip將導致ListView插入頁面內,這意味着無論它位於頁面的哪一邊,都會在邊上窺視。因此,您無法擺脫背後的東西,或者使其完全透明,因爲它對用戶是可見的。你可能會想出一種方法,只有5dip邊界存在,內部是透明的,但可能會變得混亂。

其他東西可能更容易修復。例如,其下方有藍色區域的綠色條帶表明您的綠色條帶是分佈在大部分頁面背景上的一些View。如果你可以使它們垂直疊放,而不是重疊,那將消除一小撮透支。

(當然,這可能是ViewPager這樣做,因爲我猜你使用ViewPager在這裏,我也從來沒有檢查透支上ViewPager基於UI)