GridView的一些屬性:
1.android:numColumns=”auto_fit” //GridView的列數設定為自動,也可以設定成2、3、4……
2.android:columnWidth=”90dp " //每列的寬度,也就是Item的寬度
3.android:stretchMode=”columnWidth"//縮放與列寬大小同步
4.android:verticalSpacing=”10dp” //兩行之間的邊距
5.android:horizontalSpacing=”10dp” //兩列之間的邊距
6.android:cacheColorHint="#00000000" //去除拖動時預設的黑色背景
7.android:listSelector="#00000000" //去除選中時的黃色底色
8.android:scrollbars="none" //隐藏GridView的滾動條
9.android:fadeScrollbars="true" //設定為true就可以實作滾動條的自動隐藏和顯示
10.android:fastScrollEnabled="true" //GridView出現快速滾動的按鈕(至少滾動4頁才會顯示)
11.android:fadingEdge="none" //GridView衰落(褪去)邊緣顔色為空,預設值是vertical。(可以了解為上下邊緣的提示色)
12.android:fadingEdgeLength="10dip" //定義的衰落(褪去)邊緣的長度
13.android:stackFromBottom="true" //設定為true時,你做好的清單就會顯示你清單的最下面
14.android:transcriptMode="alwaysScroll" //當你動态添加資料時,清單将自動往下滾動最新的條目可以自動滾動到可視範圍内
15.android:drawSelectorOnTop="false" //點選某條記錄不放,顔色會在記錄的後面成為背景色,内容的文字可見(預設為false)
下面來示例顯示程式圖示與标題:
子元素布局:


GridView布局,每列3個:


資料綁定,給定點選事件:


運作效果:
運作的時候報錯:
81000-byte external allocation too large for this process.
VM won't let us allocate 81000 bytes
Google後得到資訊是 Android的Dalvik VM為一個應用提供了大約16MB的記憶體,一般我們處理超過8MB的圖檔将會出現OutOfMemoryError異常(記憶體溢出異常)
在網上找了一下,參考網友的方法,通常的原因就是我們加載的圖檔太大,我看了一下我的圖檔,用500W像素的Defy拍的,原始大小一般都在800KB左右,這樣大的圖檔才導緻了記憶體洩露,網上大神們給的通常的解決方法是,用BitmapFactory解碼時加上設定好的options指令(我就是沒用options),通常Options如下設定:
BitmapFactory.Options options=new Options();
options.inDither=false; /*不進行圖檔抖動處理*/
options.inPreferredConfig=null; /*設定讓解碼器以最佳方式解碼*/
options.inSampleSize=4; /*圖檔長寬方向縮小倍數*/
Bitmap img=BitmapFactory.decodeByteArray(buffer, 0, buffer.length, options);
這樣修改後,我發現傳到手機上的圖檔一般都是200KB左右了,即縮小為原來的1/4,而且看起來還行,沒怎麼失真,幾乎不影響觀看效果,問題也解決了~
對了,最好在你使用完Bitmap之後,調用一下recycle()方法,這樣更有利于記憶體回收。
我此處用到的圖檔都是80KB以上的,存在drawable檔案夾中,直接用R.drawable.來調用,沒用到Bitmap ,是以隻能縮小圖檔大小。
本文轉自歡醉部落格園部落格,原文連結http://www.cnblogs.com/zhangs1986/p/3619086.html如需轉載請自行聯系原作者
歡醉