2010-06-23 59 views
16

我在閱讀關於setDrawingCacheEnabledgetDrawingCache,我想知道什麼時候使用它或什麼時候不好。Android - 繪圖緩存 - 何時有用?

基本上在我的情況下,我有一個HorizontalScrollView其中有很多東西,所以它的卷軸左/右,大部分的東西是不可見的。

如果我對視圖使用setDrawingCacheEnabled(true),它有幫助嗎?或者這只是當我使用自定義視圖,我打電話getDrawingCache()

HorizontalScrollView中有沒有其他「緩存」方式?

回答

5

TouchInterceptor.java - 這是負責將您的播放列表重新排序到默認音樂播放器的類。當你開始拖動當前視圖時,它使用setDrawingCacheEnabled。基本上,它會從ListView項目創建一個位圖並拖動它。仔細看看onInterceptTouchEvent的方法。

+1

鏈接已死亡。不幸的是,我找不到任何使用onInterceptTouchEvent方法的好例子。 – tomrozb 2013-03-01 21:18:22

+1

鏈接已死 – Gallal 2013-07-26 10:21:11

+1

https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/TouchInterceptor.java – 2013-07-30 07:31:50

4

這對Marcel所說的屏幕截圖非常有用。這也是非常有用的表現,因爲這是它的創造。它會佔用更多的內存,因爲您首先將視圖渲染成位圖。

你所做的是,你setDrawingCacheEnabledtrue,呼籲getDrawingCache它返回一個位圖並存儲此位圖。在onDraw中,如果緩存打開,您確實繪製了您獲得的位圖,否則繪製您獲取的位圖。滾動時這可以非常好。

+0

我試圖將圖像從網格的一個單元格拖放到另一個單元格。我可以使用這種機制嗎?如果是,那麼我應該更改我的代碼?請幫幫我? – 2012-02-16 06:43:56