Android 工做隨記

 

  1. 不要在onLayoutChange中調用requestLayout,由於調了也沒用數組

  2. Activity的進入動畫的界面內容,在onCreate中經過setContentView設置緩存

  3. SurfaceView在透明模式下,若是沒繪製過任何內容,會露出桌面。函數

  4. 使用ListView過程當中出現:在getView中返回了View,但ListView只顯示View的內容而沒有包含View。最後發現是因爲onMeasure時屢次調用了getView,解決辦法是重寫onMeasure,不知道爲何即便在xml中固定了ListView的寬高也沒用。佈局

  5. 使用skia庫時,發現其中的編解碼函數輸入輸出的數據格式都是RGBA。post

  6. 使用StateListDrawable時,發現state_pressed沒有生效。最後發現是因爲沒有將View設置成可點擊或給它添加點擊監聽。動畫

  7. 重寫onDraw(Canvas)時,參數Canvas包含着View底下的內容(但不包括SurfaceView)。線程

  8. 能夠在自定義線程中建立佈局,甚至對裏面的控件進行操做,可是一但將佈局加到Activity後,就只能由主線程去操做佈局。若是強行操做,會報出異常。這個異常能夠被捕獲,但這會出現一些很古怪的狀況。xml

  9. Canvas的rotate方式是將圖片順時針旋轉,Matrix的setxxx會清空以前的變換,只保留當前的變換,prexxx會把變換放到隊列的前面,postxxx會把變換放到隊列的後面。隊列

  10. 繪製圓時若是出現鋸齒,應該使用Paint的setAntiAlias。旋轉圖片形成的鋸齒,應該使用setFilterBitmap。圖片

  11. jpeg的exif信息中的角度:圖像要順時針這個角度,纔是正的

  12. OpenGLES中向量是列矩陣,當矩陣由一維數組表示時,按列進行填充。一個列向量中沒有賦值的元素默認值爲0

  13. ByteArrayOutputStream遇到儲存不夠時,會申請一個2倍於已存儲內容加將要儲存內容的空間。

  14. 不要使用runOnUiThread,由於你無法直接取消此次操做,用Handler代替,但要注意在退出時清空消息,處理消息加狀態判斷。

  15. 解決丟log的問題,Android默認的log緩存是4M,能夠經過logcat -g查看,使用命令logcat -G 10M加大log緩存能夠解決丟log的問題

相關文章
相關標籤/搜索