近在看ADW的東西,昨天從Launcher中提取了WorkSpace,可以左右拖動以及手勢滑動切換頁面,但是在測試中,只是使用靜態方法往裡面新增內容,相應的說明和源碼可以看這裡:
http://blog.csdn.net/Yao_GUET/archive/2011/05/04/6393962.aspx
現在測試一下使用addView方法,所以做一個分頁顯示系統所安裝程式的測試應用。
使用GridView來顯示系統已經安裝的應用,有別於原來的Launcher,把豎向滑動改為橫向滑動,使用的方法是GridView分頁。
先是擷取系統安裝的應用程式,然後再根據設定的每頁應該的大小來產生各個頁面的內容,這個使用GridView來裝載,每一個頁面對應一個GridView,然後再把這些頁面添加到SrollLayout裡面去。
不過確切的說,應該不屬於分頁的方法了,因為產生了多個GridView。。。
源碼:http://download.csdn.net/source/3250531
關鍵源碼如下:
/**<br /> * 擷取系統所有的應用程式,並根據APP_PAGE_SIZE產生相應的GridView頁面<br /> * @author Yao.GUET<br /> * blog: http://blog.csdn.net/Yao_GUET<br /> */<br />public void initViews() {<br />final PackageManager packageManager = getPackageManager();<br /> final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);<br /> mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);<br /> // get all apps<br /> final List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);</p><p> // the total pages<br /> final int PageCount = (int)Math.ceil(apps.size()/APP_PAGE_SIZE);<br /> Log.e(TAG, "size:"+apps.size()+" page:"+PageCount);<br /> for (int i=0; i<PageCount; i++) {<br /> GridView appPage = new GridView(this);<br /> // get the "i" page data<br /> appPage.setAdapter(new AppAdapter(this, apps, i));</p><p> appPage.setNumColumns(4);<br /> appPage.setOnItemClickListener(listener);<br /> mScrollLayout.addView(appPage);<br /> }<br />}
更多內容請登入我的blog:
http://blog.csdn.net/yao_guet