Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android圖片滾動,加入自動播放功能,使用自定義屬性實現,霸氣十足!

Android圖片滾動,加入自動播放功能,使用自定義屬性實現,霸氣十足!

編輯:Android開發教程

大家好,記得上次我帶著大家一起實現了一個類似與淘寶客戶端中帶有的圖片滾動播放器的效果,但是在 做完了之後,發現忘了加入圖片自動播放的功能(或許是我有意忘記加的.....),結果圖片只能通過手指滑動 來播放。於是今天我將再次帶領大家,添加上之前遺漏的功能,讓我們的圖片播放器更加完善。

這次 的程序開發將完全基於上一次的代碼,如果有朋友還未看過上篇文章,請先閱讀 Android實現圖片滾動控件 ,含頁簽功能,讓你的應用像淘寶一樣炫起來 。

既然是要加入自動播放的功能,那麼就有一個非常 重要的問題需要考慮。如果當前已經滾動到了最後一張圖片,應該怎麼辦?由於我們目前的實現方案是,所 有的圖片都按照布局文件裡面定義的順序橫向排列,然後通過偏移第一個圖片的leftMargin,來決定顯示哪 一張圖片。因此當圖片滾動在最後一張時,我們可以讓程序迅速地回滾到第一張圖片,然後從頭開始滾動。 這種效果和淘寶客戶端是有一定差異的(淘寶並沒有回滾機制,而是很自然地由最後一張圖片滾動到第一張圖 片),我也研究過淘寶圖片滾動器的實現方法,並不難實現。但是由於我們是基於上次的代碼進行開發的,方 案上無法實現和淘寶客戶端一樣的效果,因此這裡也就不追求和它完全一致了,各有風格也挺好的。

好了,現在開始實現功能,首先是打開SlidingSwitcherView,在裡面加入一個新的AsyncTask,專門用於回 滾到第一張圖片:

class ScrollToFirstItemTask extends AsyncTask<Integer, Integer, 

Integer> {  
      
    @Override
    protected Integer doInBackground(Integer... speed) {  
        int leftMargin = firstItemParams.leftMargin;  
        while (true) {  
            leftMargin = leftMargin + speed[0];  
            // 當leftMargin大於0時,說明已經滾動到了第一個元素,跳出循環  
            if (leftMargin > 0) {  
                leftMargin = 0;  
                break;  
            }  
            publishProgress(leftMargin);  
            sleep(20);  
        }  
        return leftMargin;  
    }  
      
    @Override
    protected void onProgressUpdate(Integer... leftMargin) {  
        firstItemParams.leftMargin = leftMargin[0];  
        firstItem.setLayoutParams(firstItemParams);  
    }  
      
    @Override
    protected void onPostExecute(Integer leftMargin) {  
        firstItemParams.leftMargin = leftMargin;  
        firstItem.setLayoutParams(firstItemParams);  
    }  
      
}

然後在SlidingSwitcherView裡面加入一個新的方法:

/** 
 * 滾動到第一個元素。 
 */
public void scrollToFirstItem() {  
    new ScrollToFirstItemTask().execute(20 * itemsCount);  
}

這個方法非常簡單,就是啟動了我們新增的ScrollToFirstItemTask,滾動速度設定為20 * itemsCount,這樣當我們需要滾動的圖片數量越多,回滾速度就會越快。定義好這個方法後,只要在任意地 方調用scrollToFirstItem這個方法,就可以立刻從當前圖片回滾到第一張圖片了。

查看本欄目更多精彩內容:http://www.bianceng.cn/OS/extra/

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved