中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

android技巧,Android基礎(chǔ)教程

全局查找/替換【Android Studio小技巧】

大家都知道用 ctrl + F 可以在文件中查找一些字段。Android Studio不僅支持在本文件中查找,還可以在不同范圍內(nèi)查找。

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!

方法

全局查找:Edit -Find -Find in path

全局替換: Edit -Find - Replace in path

之后會跳出一個彈框

Text to find 中輸入需要被替換的內(nèi)容,Replace with中輸入替換內(nèi)容,General中可以選擇是否區(qū)分大小寫,Context可以選擇內(nèi)容出現(xiàn)的位置:所有地方,在注釋中,注釋之外等等。

Scope是查找范圍,可以選擇整個項目,某個模塊,某個路徑,或者某個文件,使用起來非常靈活。

Options右側(cè)的Preview還可以預(yù)覽搜索結(jié)果。棒棒噠!

Android手機拍攝小技巧

很多人覺得Android手機的拍照功能不如蘋果,但事實上,許多Android手機配備了高質(zhì)量攝像頭,只要掌握正確方法,用手機拍出完美的照片也是很簡單的,下面就帶來Android手機拍攝實用小技巧,一起來看看吧。

了解攝像頭設(shè)置

在開始拍攝之前,先要熟悉手機和攝像頭的設(shè)置,之后再拍攝就會得心應(yīng)手了。如果我們能夠了解不同的模式和設(shè)置,就可以深入探索和實驗,讓拍攝更具創(chuàng)造力。

確保鏡頭干凈

看起來這一點很奇怪,在使用單反相機時,我們可能會記得擦拭單反鏡頭,但是很難記得要擦拭手機鏡頭。Android手機攝像頭沒有防塵防刮保護罩,專業(yè)相機有。

隨身攜帶一小塊清潔布,或者在錢包、夾克內(nèi)縫一小塊超細纖維鏡頭清潔布,時時提醒自己擦拭手機鏡頭和屏幕,如此一來就可以確保手機拍攝出最清晰的照片。如果嫌麻煩,可以直接用汗衫擦拭。不要忘了擦拭前置攝像頭。

忘了閃光燈 用外部光源

如果外部環(huán)境黑暗,我們會下意識打開閃光燈拍攝照片,但是獲得的圖片質(zhì)量總是不盡人意。事實上,我們完全可以不使用閃光燈,幾乎從不使用。在拍攝照片時,我們可以尋找自然光源。如果你在餐館內(nèi),想拍攝一張菜肴的照片,可以選擇靠窗戶的座位,如此一來就可以獲得完美的光線,拍出菜肴的細節(jié)。

如果你想自拍,可以站在大窗戶前拍攝。這樣拍攝并不會讓你的臉和特征“亮”起來,但是會讓背景變暗,讓你本人處在注意力的正中央。如果沒有自然光,要拍攝照片是不可能的,因此在拍攝時最好找一個外部光源,比如一盞燈或者一支蠟燭。雖然看起來很愚蠢,但是幾乎所有的其它光線都要比閃光燈好,有了更好的光線,就可以控制拍攝的內(nèi)容,讓我們想要的`部分亮起來。

不要變焦

和Android手機的閃光燈一樣,我們應(yīng)該避開變焦功能。變焦會降低圖像的質(zhì)量,當(dāng)我們編輯照片時可能會發(fā)現(xiàn)一些驚艷的東西,之前沒有發(fā)現(xiàn),我們可以將這些漂亮的部分剪出來。

這一點我們很難記住,Android設(shè)備和單反相機是不一樣的。用手機拍攝時如果我們使用了變焦功能,圖像的質(zhì)量很難保持一致。

如果你真的想親近自己拍攝的對象,請站起來,走近它,不要使用變焦功能。用這種方法拍攝,可以很好控制拍攝的對象,如果用變焦功能就會降低照片的整體質(zhì)量。

爆發(fā)性拍攝然后挑選

在拍攝照片時,爆發(fā)性拍攝的確是一種懶惰的拍攝方式,但是它極可能是拍攝完美照片的最有效方式。

不管是自拍、拍風(fēng)景、或者是拍攝菜肴,使用爆發(fā)性拍攝方式可以毫無壓力拍出一大堆照片,我們只需要按下快門,就可以用快速鏡頭拍出很多照片,拍完之后再選擇哪些最完美的。

雖然拍攝的照片有許多很糟糕,完全無法使用,但是當(dāng)中還是有隱藏了少數(shù)“寶石”?;c時間細細查看拍攝的照片,挑出最好的,刪除糟糕的。

找一個自己喜歡的照片編輯軟件

拍完照片之后,你可以選擇自己喜歡的APP編輯軟件編輯照片?,F(xiàn)在市場上有許多的軟件可供選擇,每一款軟件都有自己獨特的功能,比如過濾器、調(diào)整亮度和對比度、甚至還可以增加文本信息和貼紙。

如果你對自己拍攝的照片信心不足,照片編輯軟件也是一個很棒的補充工具。如果你對某些照片的質(zhì)量有點擔(dān)心,用編輯軟件稍稍編輯可以“拯救”這些照片。

在社交媒體上關(guān)注你喜歡的攝影師

有時,用Android手機拍攝最好的照片并不是從相機APP開始的,而是從瀏覽社交媒體開始的,我們在社交媒體上看到攝影師用Android手機拍攝漂亮的照片,從中可以學(xué)到經(jīng)驗。

在社區(qū)媒體上關(guān)注一些攝影師,向他們?nèi)〗?jīng),可以獲得一些很好的經(jīng)驗,因此我們完全可以先看看別人拍攝的好照片,然后走出去嘗試一下。你可以發(fā)表評論,問問他,看他是如何用特定風(fēng)格拍攝特定對象的,或者問問他們是如何編輯特定照片、使之呈現(xiàn)特定風(fēng)格的,拍攝者可能會回復(fù)。

你可以前往Instagram頁面探索一下,欣賞欣賞其它Android手機攝影師拍攝的照片。最開始時你可以挑選喜歡的風(fēng)格模仿拍攝,最終將它變成自己的。

鮮為人知的 Android 使用技巧有哪些

1. wifi熱點。只要你的手機有信號,你就可以用你的手機建一個wifi熱點,這樣你就可以通過你的筆記本和平板上網(wǎng)了。不過你也要小心,因為一些運營商會因此而多向你收錢。 2. 臉部安全鎖。臉部安全鎖并非傳統(tǒng)意義上的密碼鎖,只要對著你的手機微笑,你的手機就會解鎖。在選項卡中設(shè)置一下,你的手機會變得更加安全。 3. 自動操作。安卓上的第三方應(yīng)用程序像Tasker和Automagic會自動執(zhí)行任務(wù)。例如我可以設(shè)置這些程序,在我走進辦公室的時候,關(guān)掉我的鈴聲。 4. Android Beam。Android Beam是一種交換聯(lián)系信息,分享照片,甚至是無線分享應(yīng)用程序的一種方法,通過Android Beam,兩臺安卓機鏈接到一起,然后他們就可以自動分享功能了。(你需要有一個裝有Near Field Communication的最新安卓機型,最新機型像三星Galaxy系列和HTC One就裝有ear Field Communication) 5. 鍵盤。一個關(guān)于安卓機最有趣的事情就是你可以選擇額外的鍵盤。你可以下載一些第三方應(yīng)用程序(Swype, Swiftkey),或者是從谷歌商店下載谷歌鍵盤的應(yīng)用程序。 6. 截屏。這個功能很早之前就有,但是現(xiàn)在還沒有被廣而告之。以下是具體做法:同時按住電源鍵和音量調(diào)低鍵來截屏。小貼士:如果你正在路上,手機電量又很低,可以給你的目的地方向截一張圖,這樣就可以避免地圖應(yīng)用程序消耗你的電量了。 7. 數(shù)據(jù)流量控制?!盁o線網(wǎng)絡(luò)”使我們每個月的數(shù)據(jù)使用量越發(fā)緊縮;安卓允許你設(shè)置控制并且還允許你管理網(wǎng)絡(luò)數(shù)據(jù)。在設(shè)置應(yīng)用程序中,點擊“數(shù)據(jù)使用”你就會看到一張圖表,這張圖表顯示了你數(shù)據(jù)的總使用量,以及你的數(shù)據(jù)流量是否接近警戒線。 8. 自動更新應(yīng)用程序。應(yīng)用程序會因更新變得更完善,但是我們大多數(shù)人沒有時間更新程序。但是你可以設(shè)置他們自動更新。只要設(shè)置它們就好了。 9. 從其他設(shè)備進入平板。在你的電腦和手機中都裝谷歌Chrome瀏覽器,他們能相互共享數(shù)據(jù)。在你的電腦瀏覽器中打開8個標簽,然后再在手機上繼續(xù)瀏覽-打開瀏覽器,瞧,這八個標簽就是你剛才打開的那8個。 10. 插件。安卓最有用的功能就是能自定義主屏幕上的插件了。但是你知道還有更近的路可走嗎?只要點一下主頁上的插件,你就可以訪問練習(xí)人,撥打電話,甚至是直連一臺家里的平板。

Android系統(tǒng)有哪些使用技巧?如題 謝謝了

1.使用Android 電源管理 widget 從Android 2.1系統(tǒng)開始內(nèi)置了一個非 常強 大的帶 能源管理 widget,通過這個widget你可以快速開啟或者關(guān)閉Wi-Fi, 藍牙 ,GPS,同步這些手機耗 電大 戶,還可以方便的設(shè)定 手機屏幕 亮度,長按手機屏幕,就可以在widgets目錄選擇啟用。 2.Android手機撥號屏幕 如果你對手機撥號屏幕 功能性 有特殊要求,Android絕對會滿足你,點擊聯(lián)系人列表里任意一個用戶,按手機menu 選項,里面有關(guān) 于單 個聯(lián)系人的詳細設(shè)置。 3.為每個聯(lián)系人定制鈴聲 可以為女朋友或者家人設(shè)置單獨的鈴聲,這樣聽到鈴聲就知道誰來電話了。設(shè)置方法點擊聯(lián)系人列表里任意一個用戶,然后就可以設(shè)置鈴聲。 4.不要把手機 鬧鐘 (alarm clock)加入進程查殺列表里 這是一個經(jīng)典的錯誤,很多用戶都喜歡用 進程管理 程序自動殺掉一 些程序 以節(jié)省 電量 或者騰出 手機內(nèi)存 ,不過如果不小心alarm clock進程也殺掉了,后果就是第二天早晨10:30才醒過來驚慌失措的奔向公司。 5.用文件夾組織內(nèi)容 雖然 喬布斯 花了很久才決定放開iOS用戶通過文件夾組織內(nèi)容的權(quán)限,事實上Android從面世開始就支持這個功能,Android文件夾不但支持放入程序圖標,還可以存放 通訊錄 ,甚至facebook聯(lián)系人等信息,長按手機屏幕就可以在桌面建 立文 件夾。 6. 重命名 文件夾 建立了文件夾后你可能需要修改它的名稱,只需要打 開文 件夾,長按頂部的名稱就可以調(diào)出重命名文件夾的窗口。 7.查看 系統(tǒng)日期 Android新用戶可能覺得查看系統(tǒng)日期有點麻煩,其實只要按住屏幕頂部左上方的提醒欄,就會顯示今天的日期,趕快試試吧。 8.掛載你的SD卡 Android系統(tǒng)基于Linux內(nèi)核,所以使用外部 磁盤 之前必須要mount掛載后才可以正常使用。使用USB線連接手機和 電腦 時,手機會提示掛載SD卡,必須點擊完成掛載后才可以在SD卡里拷貝或者刪 除數(shù) 據(jù)。 9.設(shè)置 鍵盤 快捷方式 很多用戶迷 戀物 理 全鍵盤 的另外一個重要原因就是Android支持大量的 鍵盤快捷鍵 ,通過快捷鍵可以快速調(diào)用相關(guān)程序,可以在系統(tǒng)設(shè)置應(yīng)用程序快速啟動里設(shè)置。 10.下載更多Android 動態(tài)壁紙 Android 2.1開始系統(tǒng)支持的另外一個功能就是動態(tài)壁紙,雖然動態(tài)壁紙可能會讓你的手機耗電量增加,不過卻能讓你的手機看起來更酷,如果你喜歡耍酷,在Android Market搜索live wallpaper,會有很多動態(tài)壁紙等待你選擇。 11.快速切換 主屏 Android系統(tǒng)一般提供5個主屏,或許你覺得每次滑動手指切換太麻煩,可以按一下 home鍵 ,然后就可以選擇進入特定的主屏,HTC Sense的手機還支持 多點觸摸 調(diào)出所有主屏幕供選擇。 12.添加一個快速導(dǎo)航鍵 Android 2.1系統(tǒng)支持用戶建立地圖導(dǎo)航的快捷方式,選擇任意一個導(dǎo)航線路都可以在桌面建立一個快捷菜單,可以在出 行前 設(shè)定好導(dǎo)航的線路,需要時點擊快捷菜單節(jié)省時間。 13.設(shè)置雙擊屏幕放大的級別 絕大多數(shù)不支持多點觸摸的Android手機,在使用 瀏覽器 瀏覽網(wǎng)頁時都可以通過雙擊屏幕放大網(wǎng)頁內(nèi)容,而且你還可以在瀏覽器設(shè)置里“默認縮放”選項選擇三種放大級別,這樣每次使用雙擊放大時的效果都不同。 14.改變Android瀏覽器字體 Android 手機終端 千差萬別,不同屏幕和分辨率的手機最佳的瀏覽字體都不同,只需要在瀏覽器設(shè)置里設(shè)置合適的 字體大小 ,就可以提高 閱讀效率 。 15.搜索網(wǎng)頁特定內(nèi)容 在瀏覽器設(shè)置更多查找 選項可以用來搜索網(wǎng)頁內(nèi)容里的特定字段,幫助你快速查找相關(guān)內(nèi)容,這也是PC瀏覽器的標準功能之一。 16. 語音輸入 Android 2.1系統(tǒng)開始支持語音輸入功能,雖然處理起來有些延時,如果你勤加練習(xí)還是可以做到基本正確輸入,這 對練 習(xí) 英語口語 的同學(xué)也是一條途徑。 17.Android 字典 造詞功能 在使用Android鍵盤輸入一個特定詞語時,你可以長按它然后選擇添加到建議詞語區(qū)域,這樣就可以把這個詞加入Android字典,下次輸入時只需打入前幾個字目就可以調(diào)出這個詞。 18.同步手機照片到Picasa相冊 雖然Google的Picasa 網(wǎng)絡(luò)相冊 不及Flickr受歡迎。不過Android 2.1的3D相冊開始支持自動同步手機照片到Picasa帳戶,不需要 第三方軟件 就可以設(shè)置同步給了很多用戶使用Picasa的理由,不過悲劇的是Picasa在國內(nèi)無 法正 常打開,原因大家都懂的。 19.下 載網(wǎng) 頁圖片 瀏覽網(wǎng)頁時想保存圖片,只要長按圖片就可以單獨保存,保存的圖片可以在相冊程序中查看。 20.管理Android通話記錄 Android通話記錄非常方便,長按任意一 條播 出或者接入 電話記錄 就可以選擇刪除,非常easy。 21.使用Facebook頭像作為通訊錄聯(lián)系人照片 如果你的Android手機安裝了Facebook官方程序,可以設(shè)置自動從Facebook下載頭像作為聯(lián)系人照片。你還可以通過文件夾功能在手機桌面建立一個Facebook通訊錄文件夾,區(qū)分你的現(xiàn)實世界好友和網(wǎng)絡(luò)好友。 22.瀏覽器多 功能按鈕 Android 2.1瀏覽器地址欄有一個多功能的按鈕,當(dāng)網(wǎng)頁正在載入時,他顯示為 “X”用來取消載入,一旦頁面載入完成后它會變成書簽添加和歷 史記 錄 管理工具 ,使用起來非常方便。 23.Android網(wǎng)頁瀏覽歷史記錄快捷鍵 打開瀏覽器長按手機返回鍵就會調(diào)出網(wǎng)頁瀏覽歷史記錄窗口,比使用菜單調(diào)用要方便非常多,瀏覽器重度使用者必備。 24.使用瀏覽器“ 標簽 頁”功能 PC上的瀏覽器“標簽頁”已經(jīng)算是基本功能,Android 手機瀏覽器 其實也支持標簽頁瀏覽器,只是使用起來稍顯復(fù)雜:瀏覽網(wǎng)頁時長按一個url就可以選擇在新窗口打開,然后使用Menu鍵,再選擇窗口選項查看任意標簽頁。 25.Android設(shè)置過個Gmail帳戶 從Android 2.1系統(tǒng)開始支持多帳戶設(shè)置,打開Gmail程序,通過Menu 帳戶添加帳戶 就可以增加一個或者多個gmail帳戶,不過目前Android多賬戶融合做的還不夠完美,使用起來會有一些問題。 26.關(guān)閉Google建議搜索提速手機 如果你的Android手機是配置不高的入 門機 型,關(guān)閉Google網(wǎng)頁搜索建議會大幅提升Google搜索的性能。Google根據(jù)你輸入的內(nèi)容提供搜索建議雖然很方便,不過卻可能會導(dǎo)致性能不高的手機陷入 假死狀態(tài) 。在系統(tǒng)設(shè)置 搜索 Google搜索設(shè)置里可以禁用搜索建議。 27.在手機主屏添加“熱線電話”快捷鍵 雖然你的 手機通訊錄 有成百上千個聯(lián)系人,但是可能80%以上的通話對象只是其中的幾個人。如果把這幾個“熱線電話”在桌面建立快捷方式,點擊一下就可以撥號一定可以節(jié)省時間。長按手機屏幕空白,選擇添加快捷方式,然后選擇直接撥打的聯(lián)系人就可以在Android手機桌面建立“熱線電話”的一鍵撥號快捷鍵。 28.建立 常用網(wǎng)站 快捷方式 上面的一條秘籍其實也適合瀏覽網(wǎng)頁。普通情況下即使你把經(jīng)常訪問的網(wǎng)站加入書簽,你也需要先打開瀏覽器,然后在書簽管理界面再選中你要訪問的那一個。你也可以在書簽管理里長按你一條書簽然后選擇“添加快捷方式”,這樣會在手機主屏建立這個網(wǎng)站的快捷方式圖標,點擊后會自動調(diào)用瀏覽器程序打開網(wǎng)站訪問,和一鍵撥號一樣方便。HTC Sense用戶也可以使用HTC書簽Widget來實現(xiàn)這個功能。 29.建立 音樂播放 列表快捷方式 又是一條快捷方式的秘籍,同樣也可以節(jié)省一些時間。在Android 音樂播放器 界面長按自己創(chuàng)建的音樂播放列表在桌面建立快捷方式,接下來就可以一鍵播放你最愛的“ 音樂排行榜 ”啦。 30.跳過Android滑動解鎖屏幕 Android手機用戶一般都采用滑動解鎖屏幕的方式來喚醒手機,不過你可能不知道按兩下手機的Menu鍵也有同樣的效果,前提是你的手機制造商沒有移除這個功能,很多裝載HTC Sense手機可能無法使用這個特性。 31.快速刪除圖片 在 手機相冊 程序里刪除圖片每次都會跳出確認框,這時候按一下Menu鍵可以不需確認刪除 所有圖片 ,絕對節(jié)約時間。 32.快速輸入 特殊符號 這是一個一般人都不太注意的技巧,不過如果你是一個重度手機文字輸入用戶這個功能將非常有用。在使用Android官方 屏幕鍵盤 輸入時,長按任意一個 字符 可以調(diào)出這個字符對應(yīng)的特殊符號,比如長按S可以輸入@,長按D可以輸入#,這個技巧將大幅度改善你的手機輸入速度。 33.更多Android表情 上面一條技巧也適用于Android 表情符號 輸入,長按一種Android微笑表情會調(diào)出其他系統(tǒng)的微笑表情符號。 34.別人發(fā)給我的表情符號是什么意思 如果你已經(jīng)老到搞不清楚不同的笑臉表情代表什么,你可以在輸入界面按Menu鍵,選擇插入表情符號,然后就可以看到所有Android表情符號以及對應(yīng)的意思解釋。 35.調(diào)整Android 拼寫檢查 如果你在使用Android鍵盤時發(fā)現(xiàn)拼寫檢查功能使用起來不方便,可以在設(shè)置 語言和鍵盤 Android鍵盤里關(guān)閉。 36.安裝一個Android 文件管理 器 文件管理是Android系統(tǒng)目前最大的一個功能缺失之一,雖然你可以使用Android 系統(tǒng)工具 完成刪除圖片或者音樂等操作,但是從Android Market下載一個 文件管理軟件 將讓你在Android手機管理文件和PC上一樣高效,目前Android系統(tǒng)最好的文件管理軟件是Astro,推薦下載安裝。 37.管理你的Android電池使用 你可能會突然發(fā)現(xiàn)自己的Android手機耗電量急劇上升卻又搞不清楚究竟是哪里出了問題。Android系統(tǒng)其實已經(jīng)手機了電池使用的詳細統(tǒng)計。在手機設(shè)置菜單 關(guān)于手機 電池使用選項可以查看不同Android功能模塊使用電池電量的比例,這樣你就可以搞清楚哪個程序出了問題,再決定是否要刪除。 38.從Android鍵盤設(shè)置鍵盤 Android的原生 鍵盤輸入法 還提供一個快捷功能,長按123鍵可以調(diào)出Android 輸入法 的設(shè)置選項。 39.快速結(jié)束輸入 在 輸入過程 中雙擊空格鍵,將會自動停止輸入甚至加上一個 句號 。 40.清除手機輸入歷史 當(dāng)你想完全清楚手機數(shù)據(jù)的時候往往會忽略這么一條。別忘了手機設(shè)置 語言和鍵盤 用戶字典里清楚所有的輸入歷史。 41.讓手機說一口純真 英國 腔 你可能發(fā)現(xiàn)在使用Google Maps導(dǎo)航的時候 英語發(fā)音 非常奇怪,可以在Menu 設(shè)置 文字轉(zhuǎn)語音 里勾選“時鐘使用我的設(shè)置”選項,接下來你會發(fā)現(xiàn)導(dǎo)航發(fā) 音變 成了一口純真英國腔,聽起來舒服多了。 42.刪除那些臃腫的程序 使用不支持APP2SD功能的Android手機的程序狂人們可能經(jīng)常面臨手機內(nèi)存不足的窘境,需要刪除部分應(yīng)用程序解 放空 間。在設(shè)置 應(yīng)用程序 管理應(yīng)用程序 界面可以按Menu鍵按照程序大小排序,優(yōu)先刪除那些占用大量空間的程序。 43.激活 揚聲器 有時候會碰到接聽電話時環(huán)境太吵雜聽不清楚的情況,在通話界面按Menu鍵然后選擇“揚聲器”選項,保證不但你能聽清,周圍人也能聽清電話那頭在說什么。 44.刪除和某人的整條短信對話 如果 手機短信 里隱藏了不可高人的秘密,回家又不想被老婆發(fā)現(xiàn)。長按這條短信對話列表,然后選擇刪除,所有和對方發(fā)的短信都會被刪除。 45.使用自己的圖片做 壁紙 拍了一張很棒的 風(fēng)景 照,或者想把家人的照片用來作為壁紙,只要長按手機屏幕,選擇壁紙,然后選擇你想用來做壁紙的圖片就可以完成操作,設(shè)置壁紙前你甚至可以剪切其中的一塊來作為最終的壁紙圖片。 46.Android系統(tǒng)最新運行的 程序列表 長按Home鍵會調(diào)出Android系統(tǒng)最近運行的程序列表,如果你剛不小心關(guān)閉了一個程序,可以用這個辦法再次打開使用。 47.關(guān)閉 手機動畫 Android系統(tǒng)各種動畫效果雖然可以讓你的手機看起來很酷,不過也會消耗很多電池電量,也會影響手機性能。平時可以在設(shè)置 聲音和現(xiàn)實 動畫里關(guān)閉相關(guān)選項,大不了為其他用戶做演示的時候再打開照樣可以讓別人感到驚艷。 48.Android 系統(tǒng)集成 進程管理 Android系統(tǒng)其實也有進程查殺的功能,只不過隱藏的非常深。在手機 設(shè)置 應(yīng)用程序 里可以查看正在運行的服務(wù),點擊相關(guān)進程就可以強行關(guān)閉。不過這個功能比起第三方進程管理工具還是不夠人性化。 49.設(shè)置手機解鎖圖案 為Android手機設(shè)置解鎖圖案可以增加一點手機的安全性,起碼可以防止手機被 居心 不良的人 偷窺 ,只不過千萬不要自己忘記了這個解鎖圖案,不然后果會很嚴重。 50.設(shè)置手機屏幕充電時不會休眠 如果不是因為耗電的原因讓手機屏幕一直不休眠也是一件不錯的事情,特別是當(dāng)你的手機整夜充電的時候可以借助軟件讓你的手機變身一部電 子時 鐘,既方便隨時查看時間還可以充當(dāng) 小夜燈 。在系統(tǒng)設(shè)置 應(yīng)用程序 開發(fā)里勾選“保持喚醒狀態(tài)”選項開啟這個功能。

有哪些android開發(fā)技巧

1、android:clipToPadding

意思是控件的繪制區(qū)域是否在padding里面。默認為true。如果你設(shè)置了此屬性值為false,就能實現(xiàn)一個在布局上事半功陪的效果。先看一個效果圖。

上圖中的ListView頂部默認有一個間距,向上滑動后,間距消失,如下圖所示。

如果使用margin或padding,都不能實現(xiàn)這個效果。加一個headerView又顯得大材小用,而且過于麻煩。此處的clipToPadding配合paddingTop效果就剛剛好。

同樣,還有另外一個屬性也很神奇:android:clipChildren,具體請參考:【Android】神奇的android:clipChildren屬性

2、match_parent和wrap_content

按理說這兩個屬性一目了然,一個是填充布局空間適應(yīng)父控件,一個是適應(yīng)自身內(nèi)容大小。但如果在列表如ListView中,用錯了問題就大了。ListView中的getView方法需要計算列表條目,那就必然需要確定ListView的高度,onMesure才能做測量。如果指定了wrap_content,就等于告訴系統(tǒng),如果我有一萬個條目,你都幫我計算顯示出來,然后系統(tǒng)按照你的要求就new了一萬個對象出來。那你不悲劇了?先看一個圖。

假設(shè)現(xiàn)在ListView有8條數(shù)據(jù),match_parent需要new出7個對象,而wrap_content則需要8個。這里涉及到View的重用,就不多探討了。所以這兩個屬性的設(shè)置將決定getView的調(diào)用次數(shù)。

由此再延伸出另外一個問題:getView被多次調(diào)用。

什么叫多次調(diào)用?比如position=0它可能調(diào)用了幾次??此坪茉幃惏?。GridView和ListView都有可能出現(xiàn),說不定這個禍首就是wrap_content。說到底是View的布局出現(xiàn)了問題。如果嵌套的View過于復(fù)雜,解決方案可以是通過代碼測量列表所需要的高度,或者在getView中使用一個小技巧:parent.getChildCount == position

@Override

public View getView(int position, View convertView, ViewGroup parent) {

if (parent.getChildCount() == position) {

? // does things here

}

? ?

return convertView;

}

3、IllegalArgumentException: pointerIndex out of range

出現(xiàn)這個Bug的場景還是很無語的。一開始我用ViewPager + PhotoView(一個開源控件)顯示圖片,在多點觸控放大縮小時就出現(xiàn)了這個問題。一開始我懷疑是PhotoView的bug,找了半天無果。要命的是不知如何try,老是crash。后來才知道是android遺留下來的bug,源碼里沒對pointer index做檢查。改源碼重新編譯不太可能吧。明知有exception,又不能從根本上解決,如果不讓它crash,那就只能try-catch了。解決辦法是:自定義一個ViewPager并繼承ViewPager。請看以下代碼:

/**

* 自定義封裝android.support.v4.view.ViewPager,重寫onInterceptTouchEvent事件,捕獲系統(tǒng)級別異常

*/

public class CustomViewPager extends ViewPager {

public CustomViewPager(Context context) {

? ?this(context, null);

}

public CustomViewPager(Context context, AttributeSet attrs) {

? ?super(context, attrs);

}

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

? ?try {

? ? ? ?return super.onInterceptTouchEvent(ev);

? ?} catch (IllegalArgumentException e) {

? ? ? ?LogUtil.e(e);

? ?} catch (ArrayIndexOutOfBoundsException e) {

? ? ? ?LogUtil.e(e);

? ?}

? ?return false;

}

}

把用到ViewPager的布局文件,替換成CustomViewPager就OK了。

4、ListView中item點擊事件無響應(yīng)

listView的Item點擊事件突然無響應(yīng),問題一般是在listView中加入了button、checkbox等控件后出現(xiàn)的。這個問題是聚焦沖突造成的。在android里面,點擊屏幕之后,點擊事件會根據(jù)你的布局來進行分配的,當(dāng)你的listView里面增加了button之后,點擊事件第一優(yōu)先分配給你listView里面的button。所以你的點擊Item就失效了,這個時候你就要根據(jù)你的需求,是給你的item的最外層layout設(shè)置點擊事件,還是給你的某個布局元素添加點擊事件了。

解決辦法:在ListView的根控件中設(shè)置(若根控件是LinearLayout, 則在LinearLayout中加入以下屬性設(shè)置)descendantFocusability屬性。

android:descendantFocusability="blocksDescendants"

官方文檔也是這樣說明。

5、getSupportFragmentManager()和getChildFragmentManager()

有一個需求,F(xiàn)ragment需要嵌套3個Fragment?;旧峡梢韵氲接肰iewPager實現(xiàn)。開始代碼是這樣寫的:

mViewPager.setAdapter(new CustomizeFragmentPagerAdapter(getActivity().getSupportFragmentManager(), subFragmentList));

導(dǎo)致的問題是嵌套的Fragment有時會莫名其妙不顯示。開始根本不知道問題出現(xiàn)在哪,當(dāng)你不知道問題的原因時,去解決這個問題顯然比較麻煩。經(jīng)過一次又一次的尋尋覓覓,終于在stackoverflow上看到了同樣的提問。說是用getChildFragmentManager()就可以了。真是這么神奇!

mViewPager.setAdapter(new CustomizeFragmentPagerAdapter(getChildFragmentManager, subFragmentList));

讓我們看一下這兩個有什么區(qū)別。首先是getSupportFragmentManager(或者getFragmentManager)的說明:

Return the FragmentManager for interacting with fragments associated with this fragment's activity.

然后是getChildFragmentManager:

Return a private FragmentManager for placing and managing Fragments inside of this Fragment.

Basically, the difference is that Fragment's now have their own internal FragmentManager that can handle Fragments. The child FragmentManager is the one that handles Fragments contained within only the Fragment that it was added to. The other FragmentManager is contained within the entire Activity.

已經(jīng)說得比較明白了。

6、ScrollView嵌套ListView

這樣的設(shè)計是不是很奇怪?兩個同樣會滾動的View居然放到了一起,而且還是嵌套的關(guān)系。曾經(jīng)有一個這樣的需求:界面一共有4個區(qū)域部分,分別是公司基本信息(logo、名稱、法人、地址)、公司簡介、公司榮譽、公司口碑列表。每部分內(nèi)容都需要根據(jù)內(nèi)容自適應(yīng)高度,不能寫死。鄙人首先想到的也是外部用一個ScrollView包圍起來。然后把這4部分分別用4個自定義控件封裝起來?;拘畔⒑凸竞喗楸容^簡單,榮譽需要用到RecyclerView和TextView的組合,RecyclerView(當(dāng)然,用GridView也可以,3列多行的顯示)存放榮譽圖片,TextView顯示榮譽名稱。最后一部分口碑列表當(dāng)然是ListView了。這時候,問題就出來了。需要解決ListView放到ScrollView中的滑動問題和RecyclerView的顯示問題(如果RecyclerView的高度沒法計算,你是看不到內(nèi)容的)。

當(dāng)然,網(wǎng)上已經(jīng)有類似的提問和解決方案了。

給一個網(wǎng)址:

四種方案解決ScrollView嵌套ListView問題

ListView的情況還比較好解決,優(yōu)雅的做法無非寫一個類繼承ListView,然后重寫onMeasure方法。

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE 2, MeasureSpec.AT_MOST);

super.onMeasure(widthMeasureSpec, expandSpec);

}

ListView可以重寫onMeasure解決,RecyclerView重寫這個方法是行不通的。

說到底其實計算高度嘛。有兩種方式,一種是動態(tài)計算RecycleView,然后設(shè)置setLayoutParams;另外一種跟ListView的解決方式類似,定義一個類繼承LinearLayoutManager或GridLayoutManager(注意:可不是繼承RecyclerView),重寫onMeasure方法(此方法比較麻煩,此處不表,下次寫一篇文章再作介紹)。

動態(tài)計算高度如下:

int heightPx = DensityUtil.dip2px(getActivity(), (imageHeight + imageRowHeight) * lines);

MarginLayoutParams mParams = new MarginLayoutParams(LayoutParams.MATCH_PARENT, heightPx);

mParams.setMargins(0, 0, 0, 0);

LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(mParams);

honorImageRecyclerView.setLayoutParams(lParams);

思路是這樣的:服務(wù)端返回榮譽圖片后,由于是3列顯示的方式,只需要計算需要顯示幾行,然后給定行間距和圖片的高度,再設(shè)置setLayoutParams就行了。

int lines = (int) Math.ceil(totalImages / 3d);

至此,這個奇怪的需求得到了解決。

可是在滑動的時候,感覺出現(xiàn)卡頓的現(xiàn)象。聰明的你肯定想到是滑動沖突了。應(yīng)該是ScrollView的滑動干擾到了ListView的滑動。怎么辦呢?能不能禁掉ScrollView的滑動?

百度一下,你肯定能搜索到答案的。先上代碼:

/**

* @author Leo

*

* ? ? ? ? Created in 2015-9-12

* ? ? ? ? 攔截ScrollView滑動事件

*/

public class CustomScrollView extends ScrollView {

private int downY;

private int touchSlop;

public CustomScrollView(Context context) {

? ?this(context, null);

}

public CustomScrollView(Context context, AttributeSet attrs) {

? ?this(context, attrs, 0);

}

public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {

? ?super(context, attrs, defStyleAttr);

? ?touchSlop = ViewConfiguration.get(context).getScaledTouchSlop();

}

@Override

public boolean onInterceptTouchEvent(MotionEvent e) {

? ?int action = e.getAction();

? ?switch (action) {

? ?case MotionEvent.ACTION_DOWN:

? ? ? ?downY = (int) e.getRawY();

? ? ? ?break;

? ?case MotionEvent.ACTION_MOVE:

? ? ? ?int moveY = (int) e.getRawY();

? ? ? ?if (Math.abs(moveY - downY) touchSlop) {

? ? ? ? ? ?return true;

? ? ? ?}

? ?}

? ?return super.onInterceptTouchEvent(e);

}

}

只要理解了getScaledTouchSlop()這個方法就好辦了。這個方法的注釋是:Distance in pixels a touch can wander before we think the user is scrolling。說這是一個距離,表示滑動的時候,手的移動要大于這個距離才開始移動控件,如果小于此距離就不觸發(fā)移動。

看似很完美了。

但是還有另外一個問題:我每次加載這個界面花的時間太長了,每次由其它界面啟動這個界面時,都要卡上1~2秒,而且因手機性能時間不等。并不是由于網(wǎng)絡(luò)請求,取數(shù)據(jù)由子線程做,跟UI線程毫無關(guān)系。這樣的體驗自己看了都很不爽。

幾天過去了,還是那樣。馬上要給老板演示了。這樣的體驗要被罵十次呀。

難道跟ScrollView的嵌套有關(guān)?

好吧,那我重構(gòu)代碼。不用ScrollView了。直接用一個ListView,然后add一個headerView存放其它內(nèi)容。因為控件封裝得還算好,沒改多少布局就OK了,一運行,流暢順滑,一切迎刃而解!

本來就是這么簡單的問題,為什么非得用ScrollView嵌套呢?

stackoverflow早就告訴你了,不要這樣嵌套!不要這樣嵌套!不要這樣嵌套!重要的事情說三遍。

ListView inside ScrollView is not scrolling on Android

當(dāng)然,從android 5.0 Lollipop開始提供了一種新的API支持嵌入滑動,此時,讓像這樣的需求也能很好實現(xiàn)。

此處給一個網(wǎng)址,大家有興趣自行了解,此處不再討論。

Android NestedScrolling 實戰(zhàn)

7、EmojiconTextView的setText(null)

這是開源表情庫com.rockerhieu.emojicon中的TextView加強版。相信很多人用到過這個開源工具包。TextView用setText(null)完全沒問題。但EmojiconTextView setText(null)后就悲劇了,直接crash,顯示的是null pointer。開始我懷疑時這個view沒初始化,但并不是。那就調(diào)試一下唄。

@Override

public void setText(CharSequence text, BufferType type) {

SpannableStringBuilder builder = new SpannableStringBuilder(text);

EmojiconHandler.addEmojis(getContext(), builder, mEmojiconSize);

super.setText(builder, type);

}

EmojiconTextView中的setText看來沒什么問題。點SpannableStringBuilder進去看看,源碼原來是這樣的:

/**

* Create a new SpannableStringBuilder containing a copy of the

* specified text, including its spans if any.

*/

public SpannableStringBuilder(CharSequence text) {

this(text, 0, text.length());

}

好吧。問題已經(jīng)找到了,text.length(),不空指針才怪。

text = text == null ? "" : text;

SpannableStringBuilder builder = new SpannableStringBuilder(text);

加一行判斷就行了。

先想到這么多,以后再補充。

網(wǎng)頁題目:android技巧,Android基礎(chǔ)教程
網(wǎng)站鏈接:http://www.rwnh.cn/article0/dsdghio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、定制網(wǎng)站、手機網(wǎng)站建設(shè)、虛擬主機用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
繁昌县| 渝中区| 杭锦后旗| 区。| 阿城市| 哈密市| 新密市| 额敏县| 铜梁县| 蒲城县| 银川市| 镇原县| 砀山县| 虞城县| 嘉峪关市| 哈密市| 渝北区| 巴彦淖尔市| 九江市| 莱州市| 郁南县| 阳曲县| 南江县| 霍州市| 潞西市| 苗栗县| 波密县| 贵南县| 隆尧县| 高州市| 克拉玛依市| 财经| 大石桥市| 定结县| 山东省| 应城市| 崇礼县| 商河县| 涟源市| 满城县| 象山县|