安卓零碎知識點

零碎知識點
  1. 創建項目前,window-》performance-》workSpace 將編碼改成UTF_8
  2. 安卓系統提供了一個SparseArray,它本質是一個map,但是存儲的key只能是int類型,它相比普通的map效率更高,所以當我們需要存儲int類型的map的時候,可以使用SparseArray
  3. isOrderedBroadcastReceiver()判斷是有序廣播還是無序廣播
  4. BigDecimal是一個提供了精確的計算的類,如果在跟數值計算打交道的時候遇到問題可以考慮這個類
  5. 圖片的scaleType設置爲fitXTY則自動拉伸鋪滿容器,設置爲centerCrop則等比例放大直到最小的邊滿足後切割。
  6. RatingBar 有一個屬性是Android:isIndicator = “true”,如果設置爲TRUE則只是一個顯示的不能進行點擊修改。
  7. 安卓系統佔用物理內存大小的格式化
    1. Formatter.fromatFileSize(context, size);
  8. 強引用,任何時候都不會被;垃圾回收器回收,如果內存不足,寧願拋出OutOfMemoryError

    軟引用,只有在內存將滿的時候纔會被垃圾回收器回收,如果還有可用內存,垃圾回收器不會回收

    弱引用,只要垃圾回收器運行,就肯定會被回收,不管還有沒有可用內存。

    虛引用,虛引用等於沒有引用,任何時候都有可能被垃圾回收。

  9. 獲取圖片真實高度大小:圖片的drawable對象 drawable.getIntrinsicHeight();

  10. LruCache使用

     
  11. bitmap.compress(arg0, arg1, arg2);壓縮圖片,第一個參數是壓縮後圖片的類型png,jpg等,第二個是壓縮比例,100的話表示不壓縮,第三個參數是輸出流

  12. canvas繪製文字起點是文字左下角。paint.setTextAlign( )可以修改繪製文字的起點

  13. 兩個viewpager嵌套的時候裏層的viewpager默認是不能滑動的,因爲父類默認會攔截子類控件的透徹事件
    所以需要在父類中重寫onInterceptTouchEvent()方法,返回false表示不攔截子類的touch事件,或者在子類中 重寫dispatchTouchEvent()方法,在方法中加上一句getParent().requestDisallowInterceptTouchEvent(true);這句話的意思是將父類不允許攔截子類touch事件的屬性設置爲true,(事件的分發機制:dispatchTouchEvent->onInterceptTouchEvent->onTouchEvent)
  14. viewHolder之所以要聲明成靜態的是因爲,非靜態的內部類擁有外部類的強引用,是防止內存泄露的一種方式
  15. popupwindow需要設置上背景(view上有的話可以設置透明背景),點擊返回纔會有響應
  16. baseActivity中一般用context = getApplicationContext()取得上下文環境,不用this的原因是防止內存泄漏
  17. Target SDK,一般設置爲目前市場佔有率最高的版本,兼容性問題小
  18. compile with:一般選擇較高的版本,因爲隨着安卓的發展,會添加很多新的API,編譯版本高可以通過,如果設置的較低的話,則編譯無法通過。
  19. 如何限制一個方法併發訪問的線程數
    1. static Semaphore semaphore = new Semaphore(6);
    然後在一個線程開始的時候調用
    1. semaphore.acquire();
    在線程結束的時候調用
    1. semaphore.release();
  20. 版本號1.0.0:最後一位表示修復上一版本的bug,第二位表示更新了部分功能,第一位表示項目重大更新(代碼重構,界面整體修改,很多功能添加)
  21. 文字陰影效果:shadowX=“1”  設置顏色 shadowColor=“#FF0000” 最後要設置shadowradius="1"控制陰影範圍
  22. 手機模擬器訪問10.0.2.2就是模擬器所在電腦的ip地址。是安卓工程師故意留給我們的固定ip地址
  23. 直接使用系統自帶的theme去掉頁面的title的話會導致其他UI很醜,所以我們一般不用系統自帶的theme而是在默認的theme中添加<item name="android:windowNoTitle">true</item>
  24. activity的切換動畫(100%p:就是整個屏幕寬度)
  25. 跑馬燈效果
  26. gridview的佈局文件
  27.  開發過程中可以在values文件夾下面新建一個color.xml設定所有的顏色值。
  28. 下載完成後自動安裝APP
    1. protected void installApk(File file) {
    2. //系統應用界面,源碼,安裝apk入口
    3. Intent intent = new Intent("android.intent.action.VIEW");
    4. intent.addCategory("android.intent.category.DEFAULT");
    5. /*//文件作爲數據源
    6. intent.setData(Uri.fromFile(file));
    7. //設置安裝的類型
    8. intent.setType("application/vnd.android.package-archive");*/
    9. intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
    10. startActivity(intent);
  29. 獲取APP版本名稱
    1. PackageManager packageManager = getPackageManager();
    2. try {
    3. //0代表基本信息
    4. PackageInfo packageInfo = packageManager.getPackageInfo(this.getPackageName(), 0);
    5. String versionName = packageInfo.versionName;
    6.          String versionCode = packageInfo.versionCode;  
    7. }
    8. catch (NameNotFoundException e) {
    9. // TODO Auto-generated catch block
    10. e.printStackTrace();
    11. }
發佈了40 篇原創文章 · 獲贊 17 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章