【轉】Android開發中讓你省時省力的方法、類、介面

来源:http://www.cnblogs.com/why168888/archive/2016/12/10/6156205.html
-Advertisement-
Play Games

轉載 http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=6611409663&utm_m ...


轉載

http://www.toutiao.com/i6362292864885457410/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=6611409663&utm_medium=toutiao_android

  1. getParent().requestDisallowInterceptTouchEvent(true);
    • 解釋:一次點擊事件是從父view傳遞到子view中,每一層的view可以決定是否攔截並處理點擊事件或者傳遞到下一層,如果子view不處理點擊事件,則該事件會傳遞會父view,由父view去決定是否處理該點擊事件。在子view可以通過設置此方法去告訴父view不要攔截並處理點擊事件,父view應該接受這個請求直到此次點擊事件結束。
  2. ArgbEvaluator.evaluate(float fraction, Object startValue, Object endValue);
    • 解釋:用於根據一個起始顏色值和一個結束顏色值以及一個偏移量生成一個新的顏色,分分鐘實現類似於微信底部欄滑動顏色漸變。
  3. Bitmap.extractAlpha ();
    • 解釋:返回一個新的Bitmap,capture原始圖片的alpha 值。有的時候我們需要動態的修改一個元素的背景圖片又不希望使用多張圖片的時候,通過這個方法,結合Canvas 和Paint 可以動態的修改一個純色Bitmap的顏色。
  4. HandlerThread
    • 代替不停new Thread 開子線程的重覆體力寫法。
  5. IntentService
    • 一個可以幹完活後自己去死且不需要我們去管理子線程的Service。
  6. Palette
    • 5.0加入的可以提取一個Bitmap 中突出顏色的類,結合上面的Bitmap.extractAlpha。
  7. Executors. newSingleThreadExecutor();
    • 這個是java 的,之前不知道它,自己花很大功夫去研究了單線程順序執行的任務隊列。。
  8. ViewDragHelper
    • 自定義一個子View可拖拽的ViewGroup 時,處理各種事件。
  9. GradientDrawabl
    • 用在於定於各種樣式的漸變。
  10. AsyncQueryHandler
    • 如果做系統工具類的開發,比如聯繫人簡訊輔助工具等,肯定免不了和ContentProvider打交道,如果數據量不是很大的情況下,隨便搞,如果數據量大的情況下,瞭解下這個類是很有必要的。
  11. ViewFlipper
    • 實現多個view的切換(迴圈),可自定義動畫效果,且可針對單個切換指定動畫。
  12. View.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
    • 解釋:有朋友提到了在自定義View時有些方法在開啟硬體加速的時候沒有效果的問題,在API16之後確實有很多方法不支持硬體加速,通常我們關閉硬體加速都是在清單文件中通過,其實android也提供了針對特定View關閉硬體加速的方法,調用該方法即可。
  13. Pair
    • android util包中的Pair類,可以方便的用來存儲一”組”數據。註意不是key value。
  14. PointF
    • graphics包中的一個類,我們經常見到在處理Touch事件的時候分別定義一個downX,一個downY用來存儲一個坐標,如果坐標少還好,如果要記錄的坐標過多那代碼就不好看了。用PointF(float x, float y);來描述一個坐標點會清楚很多。
  15. StateListDrawable
    • 定義Selector通常的辦法都是xml文件,但是有的時候我們的圖片資源可能是從伺服器動態獲取的,比如很多app所謂的皮膚,這種時候就只能通StateListDrawable來完成了,各種addState即可。
  16. android:descendantFocusability
    • ListView的item中CheckBox等元素搶焦點導致item點擊事件無法響應時,除了給對應的元素設置 focusable,更簡單的是在item根佈局加上android:descendantFocusability=”blocksDescendants” android:duplicateParentState=”true”,讓子View跟隨其Parent的狀態,如pressed等。常見的使用場景是某些時候一個按鈕很小,我們想要擴大其點擊區域的時候通常會再給其包裹一層佈局,將點擊事件寫到Parent上,這時候如果希望被包裹按鈕的點擊效果對應的Selector繼續生效的話,這時候duplicateParentState就派上用場了。
  17. includeFontPadding="false"
    • TextView預設上下是有一定的padding的,有時候我們可能不需要上下這部分留白,加上它即可。
  18. Messenger
    • 進程間通信。
  19. TextView.setError();
    • 解釋:用於驗證用戶輸入。
  20. ViewConfiguration.getScaledTouchSlop();
    • 解釋:觸發移動事件的最小距離,自定義View處理touch事件的時候,有的時候需要判斷用戶是否真的存在movie,系統提供了這樣的方法。
  21. ValueAnimator.reverse();
    • 解釋:順暢的取消動畫效果。
  22. ViewStub
    • 有的時候一塊區域需要根據情況顯示不同的佈局,通常我們都會通過setVisibility的方法來顯示和隱藏不同的佈局,但是這樣預設是全部載入的,用ViewStub可以更好的提升性能。
  23. onTrimMemory
    • 在Activity中重寫此方法,會在記憶體緊張的時候回調(支持多個級別),便於我們主動的進行資源釋放,避免OOM。
  24. EditTxt.setImeOptions
    • 使用EditText彈出軟鍵盤時,修改回車鍵的顯示內容。
  25. TextView.setCompoundDrawablePadding
    • 代碼設置TextView的drawable padding。
  26. ImageSwitcher
    • 可以用來做圖片切換的一個類,類似於幻燈片。
  27. WeakHashMap
    • 直接使用HashMap有時候會帶來記憶體溢出的風險,使用WaekHashMap實例化Map。當使用者不再有對象引用的時候,WeakHashMap將自動被移除對應Key值的對象。
      

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • BFC 在上一篇文章中, "清除浮動方法解析" ,我們談及了一些使用css屬性解決浮動帶來的影響。但是在解決浮動帶來的影響的方法中,如果細心思考,會產生如下疑問: 為什麼 可以清除浮動帶來的影響? 能否用其他css屬性清除浮動帶來的影響? 種種的疑問,會讓你覺得CSS真的不容易精通,說精通過於高大上 ...
  • ...
  • layer至今仍作為layui的代表作,她的受眾廣泛並非偶然,而是這五年多的堅持,不斷完善和維護、不斷建設和提升社區服務,使得猿們紛紛自發傳播,乃至於成為今天的Layui最強勁的源動力。目前,layer已成為國內最多人使用的web彈層組件,GitHub自然Stars3000+,官網累計下載量達20w ...
  • OS Node.js提供了一些基本的底層操作系統的模塊 "OS" . API ...
  • 關於調試 當我們只專註於前端的時候,我們習慣性F12,這會給我們帶來安全與舒心的感覺。 但是當我們使用NodeJs來開發後臺的時候,我想噩夢來了。 但是也別泰國擔心,NodeJs的調試是很不方便!這是肯定的。 但是還好,我們有 "node inspector" 來幫助我們解決一部分的調試問題,但是對 ...
  • 秋招也算是正式結束了,現在整理一下筆記,當作鞏固一下知識,也希望這個對大家有幫助 http 緩存 和 cdn 緩存可以說是面試必問的問題,竟然是必問的問題,那就總結全面一點~ http緩存機制 秋招也算是正式結束了,現在整理一下筆記,當作鞏固一下知識,也希望這個對大家有幫助 http 緩存 和 cd ...
  • 學習H5 Web開發怎麼和安卓原生開發共存呢,React Native直接解決了這個問題:在運用H5開發的同時,還可以有效調用android原生態開發,直接兩者兼具,既保留了android原生開發也運用了H5 web開發。成本與效率共存。 ...
  • 這兩天不小心看了一下Swift的基礎語法,感覺既然看了,還是寫一下筆記,留個痕跡~總體而言,感覺Swift是一種前後端多種語言混合的產物~~~做為一名.NET陣營人士,少少多多總喜歡通過對比來加深認識。所以做了一個簡單的比較列表,詳情如下... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...