Android小知識庫

發表於2016-03-14

這份是我工作以來,總結的小知識庫,有些知識點現在看來太LOW了,把還覺得有用的分享出來!

Genymotion下載虛擬映象Connection timeout

Add new device出現的問題:

Failed to deploy virtual device.
Unable to create virtual device.Connection timeout occurred.

解決方案:

  1. 當選擇Google Nexus 5 – 6.0.0 – API 23 – 1080×1920下載device失敗後,到C:Users使用者主目錄AppDataLocalGenymobileGenymotionova下看到genymotion_vbox86p_6.0_160114_090449.ova,大小卻是0KB,在C:Users使用者主目錄AppDataLocalGenymobilegenymotion.log,開啟該檔案,找到類似“http://files2.genymotion.com/dists/6.0.0/ova/genymotion_vbox86p_6.0_160114_090449.ova”路徑,即您想要下載的映象檔案URL;
  2. 用迅雷去下載,下載完成後放到C:Users使用者主目錄AppDataLocalGenymobileGenymotionova;
  3. 重新點選Google Nexus 5 – 6.0.0 – API 23 – 1080×1920去下載,驗證安裝後即會顯示在裝置列表中。

Android Studio 如何Debug

單擊F5(Step Over),單行一個個方法執行
單擊F6(Step Into),單行執行
單擊F7(Step Out),不往下執行,回到上一行
單擊F8(Resume Program),跳出當前斷點

Android Studio設定預設的簽名檔案

新浪微博SSO登入,微信分享這些都需要簽名打包,才能看到效果,設定預設簽名檔案為自己的簽名jks,這樣就不需要打包了。
在app目錄下新增你的.jks,然後app的build.gradle檔案中的增加以下內容:
第一種:


第二種:


這樣編譯出來的debug版本直接用的是你的正式簽名

Fragment懶載入


Android studio頭註釋和方法註釋

File | Settings | Editor|File and Code Templates|Includes|File Header


輸入我們想要設定的註釋模板

adapter.getPositionForSelection()和getSectionForPosition()

getPositionForSection()根據分類列的索引號獲得該序列的首個位置
getSectionForPosition()通過該項的位置,獲得所在分類組的索引號

getResources().getColor(R.color.color_name) is deprecated和drawableTop


showPopupWindow


v:父佈局
demo_popup_window_bg.xml


onFinishInflate()

view的onFinishInflate()何時呼叫的?
當View中所有的子控制元件均被對映成xml後觸發;
MyView mv = (MyView)View.inflate (context,R.layout.my_view,null);
當載入完成xml後,就會執行那個方法;
我們一般使用View的流程是在onCreate中使用setContentView來設定要顯示Layout檔案或直接建立一個View,在當設定了ContentView之後系統會對這個View進行解析,然後回撥當前檢視View中的onFinishInflate方法。只有解析了這個View我們才能在這個View容器中獲取到擁有Id的元件,同樣因為系統解析完View之後才會呼叫onFinishInflate方法,所以我們自定義元件時可以onFinishInflate方法中獲取指定子View的引用。

Fragment設定隱藏或顯示某個Fragment

MainFragment點選


MainActivity


獲取arrt的值

不同主題下需要把顏色,數值寫成attr屬性
xml裡,我們可以簡單的引用attr屬性值


程式碼獲取


撥號盤撥打電話


Drawable /Bitmap、String/InputStream、Bitmap/byte[]互轉

http://wuxiaolong.me/2015/08/10/Drawable-to-Bitmap/

ProgressDialog


毫秒

毫秒Calendar.getInstance().getTimeInMillis()和System.currentTimeMillis()

Fragment setUserVisibleHint(boolean isVisibleToUser)


Fragment onActivityResult


dimen程式碼取值

getDimension方法獲取到資原始檔中定義的dimension值。


陣列初始化賦值

1、建立陣列後,通過迴圈對陣列賦值。
例如程式碼:
int [] nums = new int [100];
for(int i=0;inums[i] = i;
}
2、例如程式碼:
int [] nums = {0,1,2,3,4,5,6,7,8,9};
3、int [] nums = new int[]{0,1,2,3,4,5,6,7,8,9};

Fragment.isAdded()


呼叫:


HomeFragment


android之inputType屬性


ImageView.ScaleType

(1)ImageView.ScaleType.center:圖片位於檢視中間,但不執行縮放。
(2)ImageView.ScaleType.CENTER_CROP 按統一比例縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或者大於相應的檢視的維度
(3)ImageView.ScaleType.CENTER_INSIDE按統一比例縮放圖片(保持圖片的尺寸比例)便於圖片的兩維(寬度和高度)等於或者小於相應的檢視的維度
(4)ImageView.ScaleType.FIT_CENTER縮放圖片使用center
(5)ImageView.ScaleType.FIT_END縮放圖片使用END
(6)ImageView.ScaleType.FIT_START縮放圖片使用START
(7)ImageView.ScaleType.FIT_XY縮放圖片使用XY
(8)ImageView.ScaleType.MATRIX當繪製時使用圖片矩陣縮放

呼叫系統傳送簡訊介面


跳轉市場搜尋某款軟體


檢測系統中是否安裝某款軟體


對話方塊選單


定義ProgressBar


progress_rotate:


幻燈片效果

xml


style


anim


MD5加密


設定自動跳轉頁面

Timer


Handler


隨機取數


或:


selector下的屬性值

android:state_pressed
如果是true,當被點選時顯示該圖片,如果是false沒被按下時顯示預設。
android:state_focused
true,獲得焦點時顯示;false,沒獲得焦點顯示預設。
android:state_selected
true,當被選擇時顯示該圖片;false,當未被選擇時顯示該圖片。
android:state_checkable
true,當 能使用時顯示該圖片;false,當CheckBox不能使用時顯示該圖片。
android:state_checked
true,當CheckBox選中時顯示該圖片;false,當CheckBox為選中時顯示該圖片。
android:state_enabled
true,當該元件能使用時顯示該圖片;false,當該元件不能使用時顯示該圖片。
android:state_window_focused
true,當此activity獲得焦點在最前面時顯示該圖片;false,當沒在最前面時顯示該圖片。


帶下劃線的EditText


主要工作就是過載onDraw方法,利用從TextView繼承下來的getLineCount函式獲取文字所佔的行數,以及getLineBounds來獲取特定行的基準高度值,而且這個函式第二個引數會返回此行的“外包裝”值。再利用這些值繪製這一行的線條。為了讓介面的View使用自定義的EditText類,必須在配置檔案中進行設定

關閉鍵盤


介面不被彈出的鍵盤蓋住

一進入activity就彈出鍵盤


第一個軟鍵盤和輸入框會完全分離,而第二個輸入框還是會被軟鍵盤蓋住一點點
而且第二個要把兩個屬性疊加起來,為什麼要疊加起來呢,因為如果只用adjustPan 的話需要點選輸入框才會彈出軟鍵盤

在 AndroidMainfest.xml中選擇哪個activity,設定windowSoftInputMode屬性為


windowSoftInputMode各值的含義:

stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設定

stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裡的狀態,無論是隱藏還是顯示

stateHidden:使用者選擇activity時,軟鍵盤總是被隱藏

stateAlwaysHidden:當該Activity主視窗獲取焦點時,軟鍵盤也總是被隱藏的

stateVisible:軟鍵盤通常是可見的

stateAlwaysVisible:使用者選擇activity時,軟鍵盤總是顯示的狀態

adjustUnspecified:預設設定,通常由系統自行決定是隱藏還是顯示

adjustResize:該Activity總是調整螢幕的大小以便留出軟鍵盤的空間

adjustPan:當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者能總是看到輸入內容的部分

控制元件美化Shape

http://wuxiaolong.me/2013/07/09/shape/

獲取版本名稱 VersionName


獲取Android手機裝置的IMSI / IMEI 資訊


自定義Log是否顯示


非同步操作AsyncTask


呼叫:


檢查網路狀態


程式碼判斷呼叫:


Html.fromHtml()

讓資料接受網頁的格式


URLEncoder.encode

網址請求帶中文


Android中字型加粗

  • 在xml檔案中使用

  • Java 程式碼

(網上查XML不能將中文設定成粗體,只能通過Java code。Android 2.2 可以通過XML將中文設定成粗體)


  • Html.fromHtml(“”)

程式碼設定背景圖setImageResource/setBackgroundResource


android中的ellipsize


控制元件點選效果


保留小數點

方法一:


方法二:


RadioGroup


android:button=”@null” 去除RadioButton前面的圓點
android:background=”@drawable/radio” 使用定義的樣式

佔位符%s替換

%d (表示整數)
%f (表示浮點數)
%s (表示字串)
txt.setText(String.format (“被替換%1$s”,”替換內容”));

TextView中巢狀圖片Drawable


TextView做成分割線


SpannableString單擊文字連結


TextView中文字通過SpannableString

來設定超連結、顏色、字型等屬性


android:drawableTop屬性

寫在TextView裡,實現圖片+文字

獲取解析度


程式碼完成控制元件

Button


TextView


TextWatcher


螢幕旋轉時不銷燬


獲取螢幕方向


List增加資料

簡單


鍵值對


清除資料:


LinkedList


驗證是否手機號碼


正規表示式數字驗證


SharedPreferences

SharedPreferences存資料


SharedPreferences取資料


Intent 傳值

簡單傳值

ActivityPage


Player接受


複雜傳值

A頁面:


B頁面


List


xml檔案中匯入另一個xml檔案的方法include


單擊返回鍵兩次退出


或者


圖片左右迴圈移動


控制元件左右抖動

res下anim
animlayout.xml


cycle_7.xml


(2)java程式碼


相關文章