大家都知道用 ctrl + F 可以在文件中查找一些字段。Android Studio不僅支持在本文件中查找,還可以在不同范圍內(nèi)查找。
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁(yè)設(shè)計(jì)師等,應(yīng)用各種網(wǎng)絡(luò)程序開(kāi)發(fā)技術(shù)和網(wǎng)頁(yè)設(shè)計(jì)技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專(zhuān)業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站、電商門(mén)戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗(yàn)的提升,我們力求做到極致!
方法
全局查找:Edit -Find -Find in path
全局替換: Edit -Find - Replace in path
之后會(huì)跳出一個(gè)彈框
Text to find 中輸入需要被替換的內(nèi)容,Replace with中輸入替換內(nèi)容,General中可以選擇是否區(qū)分大小寫(xiě),Context可以選擇內(nèi)容出現(xiàn)的位置:所有地方,在注釋中,注釋之外等等。
Scope是查找范圍,可以選擇整個(gè)項(xiàng)目,某個(gè)模塊,某個(gè)路徑,或者某個(gè)文件,使用起來(lái)非常靈活。
Options右側(cè)的Preview還可以預(yù)覽搜索結(jié)果。棒棒噠!
很多人覺(jué)得Android手機(jī)的拍照功能不如蘋(píng)果,但事實(shí)上,許多Android手機(jī)配備了高質(zhì)量攝像頭,只要掌握正確方法,用手機(jī)拍出完美的照片也是很簡(jiǎn)單的,下面就帶來(lái)Android手機(jī)拍攝實(shí)用小技巧,一起來(lái)看看吧。
了解攝像頭設(shè)置
在開(kāi)始拍攝之前,先要熟悉手機(jī)和攝像頭的設(shè)置,之后再拍攝就會(huì)得心應(yīng)手了。如果我們能夠了解不同的模式和設(shè)置,就可以深入探索和實(shí)驗(yàn),讓拍攝更具創(chuàng)造力。
確保鏡頭干凈
看起來(lái)這一點(diǎn)很奇怪,在使用單反相機(jī)時(shí),我們可能會(huì)記得擦拭單反鏡頭,但是很難記得要擦拭手機(jī)鏡頭。Android手機(jī)攝像頭沒(méi)有防塵防刮保護(hù)罩,專(zhuān)業(yè)相機(jī)有。
隨身攜帶一小塊清潔布,或者在錢(qián)包、夾克內(nèi)縫一小塊超細(xì)纖維鏡頭清潔布,時(shí)時(shí)提醒自己擦拭手機(jī)鏡頭和屏幕,如此一來(lái)就可以確保手機(jī)拍攝出最清晰的照片。如果嫌麻煩,可以直接用汗衫擦拭。不要忘了擦拭前置攝像頭。
忘了閃光燈 用外部光源
如果外部環(huán)境黑暗,我們會(huì)下意識(shí)打開(kāi)閃光燈拍攝照片,但是獲得的圖片質(zhì)量總是不盡人意。事實(shí)上,我們完全可以不使用閃光燈,幾乎從不使用。在拍攝照片時(shí),我們可以尋找自然光源。如果你在餐館內(nèi),想拍攝一張菜肴的照片,可以選擇靠窗戶的座位,如此一來(lái)就可以獲得完美的光線,拍出菜肴的細(xì)節(jié)。
如果你想自拍,可以站在大窗戶前拍攝。這樣拍攝并不會(huì)讓你的臉和特征“亮”起來(lái),但是會(huì)讓背景變暗,讓你本人處在注意力的正中央。如果沒(méi)有自然光,要拍攝照片是不可能的,因此在拍攝時(shí)最好找一個(gè)外部光源,比如一盞燈或者一支蠟燭。雖然看起來(lái)很愚蠢,但是幾乎所有的其它光線都要比閃光燈好,有了更好的光線,就可以控制拍攝的內(nèi)容,讓我們想要的`部分亮起來(lái)。
不要變焦
和Android手機(jī)的閃光燈一樣,我們應(yīng)該避開(kāi)變焦功能。變焦會(huì)降低圖像的質(zhì)量,當(dāng)我們編輯照片時(shí)可能會(huì)發(fā)現(xiàn)一些驚艷的東西,之前沒(méi)有發(fā)現(xiàn),我們可以將這些漂亮的部分剪出來(lái)。
這一點(diǎn)我們很難記住,Android設(shè)備和單反相機(jī)是不一樣的。用手機(jī)拍攝時(shí)如果我們使用了變焦功能,圖像的質(zhì)量很難保持一致。
如果你真的想親近自己拍攝的對(duì)象,請(qǐng)站起來(lái),走近它,不要使用變焦功能。用這種方法拍攝,可以很好控制拍攝的對(duì)象,如果用變焦功能就會(huì)降低照片的整體質(zhì)量。
爆發(fā)性拍攝然后挑選
在拍攝照片時(shí),爆發(fā)性拍攝的確是一種懶惰的拍攝方式,但是它極可能是拍攝完美照片的最有效方式。
不管是自拍、拍風(fēng)景、或者是拍攝菜肴,使用爆發(fā)性拍攝方式可以毫無(wú)壓力拍出一大堆照片,我們只需要按下快門(mén),就可以用快速鏡頭拍出很多照片,拍完之后再選擇哪些最完美的。
雖然拍攝的照片有許多很糟糕,完全無(wú)法使用,但是當(dāng)中還是有隱藏了少數(shù)“寶石”。花點(diǎn)時(shí)間細(xì)細(xì)查看拍攝的照片,挑出最好的,刪除糟糕的。
找一個(gè)自己喜歡的照片編輯軟件
拍完照片之后,你可以選擇自己喜歡的APP編輯軟件編輯照片。現(xiàn)在市場(chǎng)上有許多的軟件可供選擇,每一款軟件都有自己獨(dú)特的功能,比如過(guò)濾器、調(diào)整亮度和對(duì)比度、甚至還可以增加文本信息和貼紙。
如果你對(duì)自己拍攝的照片信心不足,照片編輯軟件也是一個(gè)很棒的補(bǔ)充工具。如果你對(duì)某些照片的質(zhì)量有點(diǎn)擔(dān)心,用編輯軟件稍稍編輯可以“拯救”這些照片。
在社交媒體上關(guān)注你喜歡的攝影師
有時(shí),用Android手機(jī)拍攝最好的照片并不是從相機(jī)APP開(kāi)始的,而是從瀏覽社交媒體開(kāi)始的,我們?cè)谏缃幻襟w上看到攝影師用Android手機(jī)拍攝漂亮的照片,從中可以學(xué)到經(jīng)驗(yàn)。
在社區(qū)媒體上關(guān)注一些攝影師,向他們?nèi)〗?jīng),可以獲得一些很好的經(jīng)驗(yàn),因此我們完全可以先看看別人拍攝的好照片,然后走出去嘗試一下。你可以發(fā)表評(píng)論,問(wèn)問(wèn)他,看他是如何用特定風(fēng)格拍攝特定對(duì)象的,或者問(wèn)問(wèn)他們是如何編輯特定照片、使之呈現(xiàn)特定風(fēng)格的,拍攝者可能會(huì)回復(fù)。
你可以前往Instagram頁(yè)面探索一下,欣賞欣賞其它Android手機(jī)攝影師拍攝的照片。最開(kāi)始時(shí)你可以挑選喜歡的風(fēng)格模仿拍攝,最終將它變成自己的。
1. wifi熱點(diǎn)。只要你的手機(jī)有信號(hào),你就可以用你的手機(jī)建一個(gè)wifi熱點(diǎn),這樣你就可以通過(guò)你的筆記本和平板上網(wǎng)了。不過(guò)你也要小心,因?yàn)橐恍┻\(yùn)營(yíng)商會(huì)因此而多向你收錢(qián)。 2. 臉部安全鎖。臉部安全鎖并非傳統(tǒng)意義上的密碼鎖,只要對(duì)著你的手機(jī)微笑,你的手機(jī)就會(huì)解鎖。在選項(xiàng)卡中設(shè)置一下,你的手機(jī)會(huì)變得更加安全。 3. 自動(dòng)操作。安卓上的第三方應(yīng)用程序像Tasker和Automagic會(huì)自動(dòng)執(zhí)行任務(wù)。例如我可以設(shè)置這些程序,在我走進(jìn)辦公室的時(shí)候,關(guān)掉我的鈴聲。 4. Android Beam。Android Beam是一種交換聯(lián)系信息,分享照片,甚至是無(wú)線分享應(yīng)用程序的一種方法,通過(guò)Android Beam,兩臺(tái)安卓機(jī)鏈接到一起,然后他們就可以自動(dòng)分享功能了。(你需要有一個(gè)裝有Near Field Communication的最新安卓機(jī)型,最新機(jī)型像三星Galaxy系列和HTC One就裝有ear Field Communication) 5. 鍵盤(pán)。一個(gè)關(guān)于安卓機(jī)最有趣的事情就是你可以選擇額外的鍵盤(pán)。你可以下載一些第三方應(yīng)用程序(Swype, Swiftkey),或者是從谷歌商店下載谷歌鍵盤(pán)的應(yīng)用程序。 6. 截屏。這個(gè)功能很早之前就有,但是現(xiàn)在還沒(méi)有被廣而告之。以下是具體做法:同時(shí)按住電源鍵和音量調(diào)低鍵來(lái)截屏。小貼士:如果你正在路上,手機(jī)電量又很低,可以給你的目的地方向截一張圖,這樣就可以避免地圖應(yīng)用程序消耗你的電量了。 7. 數(shù)據(jù)流量控制?!盁o(wú)線網(wǎng)絡(luò)”使我們每個(gè)月的數(shù)據(jù)使用量越發(fā)緊縮;安卓允許你設(shè)置控制并且還允許你管理網(wǎng)絡(luò)數(shù)據(jù)。在設(shè)置應(yīng)用程序中,點(diǎn)擊“數(shù)據(jù)使用”你就會(huì)看到一張圖表,這張圖表顯示了你數(shù)據(jù)的總使用量,以及你的數(shù)據(jù)流量是否接近警戒線。 8. 自動(dòng)更新應(yīng)用程序。應(yīng)用程序會(huì)因更新變得更完善,但是我們大多數(shù)人沒(méi)有時(shí)間更新程序。但是你可以設(shè)置他們自動(dòng)更新。只要設(shè)置它們就好了。 9. 從其他設(shè)備進(jìn)入平板。在你的電腦和手機(jī)中都裝谷歌Chrome瀏覽器,他們能相互共享數(shù)據(jù)。在你的電腦瀏覽器中打開(kāi)8個(gè)標(biāo)簽,然后再在手機(jī)上繼續(xù)瀏覽-打開(kāi)瀏覽器,瞧,這八個(gè)標(biāo)簽就是你剛才打開(kāi)的那8個(gè)。 10. 插件。安卓最有用的功能就是能自定義主屏幕上的插件了。但是你知道還有更近的路可走嗎?只要點(diǎn)一下主頁(yè)上的插件,你就可以訪問(wèn)練習(xí)人,撥打電話,甚至是直連一臺(tái)家里的平板。
1.使用Android 電源管理 widget 從Android 2.1系統(tǒng)開(kāi)始內(nèi)置了一個(gè)非 常強(qiáng) 大的帶 能源管理 widget,通過(guò)這個(gè)widget你可以快速開(kāi)啟或者關(guān)閉Wi-Fi, 藍(lán)牙 ,GPS,同步這些手機(jī)耗 電大 戶,還可以方便的設(shè)定 手機(jī)屏幕 亮度,長(zhǎng)按手機(jī)屏幕,就可以在widgets目錄選擇啟用。 2.Android手機(jī)撥號(hào)屏幕 如果你對(duì)手機(jī)撥號(hào)屏幕 功能性 有特殊要求,Android絕對(duì)會(huì)滿足你,點(diǎn)擊聯(lián)系人列表里任意一個(gè)用戶,按手機(jī)menu 選項(xiàng),里面有關(guān) 于單 個(gè)聯(lián)系人的詳細(xì)設(shè)置。 3.為每個(gè)聯(lián)系人定制鈴聲 可以為女朋友或者家人設(shè)置單獨(dú)的鈴聲,這樣聽(tīng)到鈴聲就知道誰(shuí)來(lái)電話了。設(shè)置方法點(diǎn)擊聯(lián)系人列表里任意一個(gè)用戶,然后就可以設(shè)置鈴聲。 4.不要把手機(jī) 鬧鐘 (alarm clock)加入進(jìn)程查殺列表里 這是一個(gè)經(jīng)典的錯(cuò)誤,很多用戶都喜歡用 進(jìn)程管理 程序自動(dòng)殺掉一 些程序 以節(jié)省 電量 或者騰出 手機(jī)內(nèi)存 ,不過(guò)如果不小心alarm clock進(jìn)程也殺掉了,后果就是第二天早晨10:30才醒過(guò)來(lái)驚慌失措的奔向公司。 5.用文件夾組織內(nèi)容 雖然 喬布斯 花了很久才決定放開(kāi)iOS用戶通過(guò)文件夾組織內(nèi)容的權(quán)限,事實(shí)上Android從面世開(kāi)始就支持這個(gè)功能,Android文件夾不但支持放入程序圖標(biāo),還可以存放 通訊錄 ,甚至facebook聯(lián)系人等信息,長(zhǎng)按手機(jī)屏幕就可以在桌面建 立文 件夾。 6. 重命名 文件夾 建立了文件夾后你可能需要修改它的名稱,只需要打 開(kāi)文 件夾,長(zhǎng)按頂部的名稱就可以調(diào)出重命名文件夾的窗口。 7.查看 系統(tǒng)日期 Android新用戶可能覺(jué)得查看系統(tǒng)日期有點(diǎn)麻煩,其實(shí)只要按住屏幕頂部左上方的提醒欄,就會(huì)顯示今天的日期,趕快試試吧。 8.掛載你的SD卡 Android系統(tǒng)基于Linux內(nèi)核,所以使用外部 磁盤(pán) 之前必須要mount掛載后才可以正常使用。使用USB線連接手機(jī)和 電腦 時(shí),手機(jī)會(huì)提示掛載SD卡,必須點(diǎn)擊完成掛載后才可以在SD卡里拷貝或者刪 除數(shù) 據(jù)。 9.設(shè)置 鍵盤(pán) 快捷方式 很多用戶迷 戀物 理 全鍵盤(pán) 的另外一個(gè)重要原因就是Android支持大量的 鍵盤(pán)快捷鍵 ,通過(guò)快捷鍵可以快速調(diào)用相關(guān)程序,可以在系統(tǒng)設(shè)置應(yīng)用程序快速啟動(dòng)里設(shè)置。 10.下載更多Android 動(dòng)態(tài)壁紙 Android 2.1開(kāi)始系統(tǒng)支持的另外一個(gè)功能就是動(dòng)態(tài)壁紙,雖然動(dòng)態(tài)壁紙可能會(huì)讓你的手機(jī)耗電量增加,不過(guò)卻能讓你的手機(jī)看起來(lái)更酷,如果你喜歡???,在Android Market搜索live wallpaper,會(huì)有很多動(dòng)態(tài)壁紙等待你選擇。 11.快速切換 主屏 Android系統(tǒng)一般提供5個(gè)主屏,或許你覺(jué)得每次滑動(dòng)手指切換太麻煩,可以按一下 home鍵 ,然后就可以選擇進(jìn)入特定的主屏,HTC Sense的手機(jī)還支持 多點(diǎn)觸摸 調(diào)出所有主屏幕供選擇。 12.添加一個(gè)快速導(dǎo)航鍵 Android 2.1系統(tǒng)支持用戶建立地圖導(dǎo)航的快捷方式,選擇任意一個(gè)導(dǎo)航線路都可以在桌面建立一個(gè)快捷菜單,可以在出 行前 設(shè)定好導(dǎo)航的線路,需要時(shí)點(diǎn)擊快捷菜單節(jié)省時(shí)間。 13.設(shè)置雙擊屏幕放大的級(jí)別 絕大多數(shù)不支持多點(diǎn)觸摸的Android手機(jī),在使用 瀏覽器 瀏覽網(wǎng)頁(yè)時(shí)都可以通過(guò)雙擊屏幕放大網(wǎng)頁(yè)內(nèi)容,而且你還可以在瀏覽器設(shè)置里“默認(rèn)縮放”選項(xiàng)選擇三種放大級(jí)別,這樣每次使用雙擊放大時(shí)的效果都不同。 14.改變Android瀏覽器字體 Android 手機(jī)終端 千差萬(wàn)別,不同屏幕和分辨率的手機(jī)最佳的瀏覽字體都不同,只需要在瀏覽器設(shè)置里設(shè)置合適的 字體大小 ,就可以提高 閱讀效率 。 15.搜索網(wǎng)頁(yè)特定內(nèi)容 在瀏覽器設(shè)置更多查找 選項(xiàng)可以用來(lái)搜索網(wǎng)頁(yè)內(nèi)容里的特定字段,幫助你快速查找相關(guān)內(nèi)容,這也是PC瀏覽器的標(biāo)準(zhǔn)功能之一。 16. 語(yǔ)音輸入 Android 2.1系統(tǒng)開(kāi)始支持語(yǔ)音輸入功能,雖然處理起來(lái)有些延時(shí),如果你勤加練習(xí)還是可以做到基本正確輸入,這 對(duì)練 習(xí) 英語(yǔ)口語(yǔ) 的同學(xué)也是一條途徑。 17.Android 字典 造詞功能 在使用Android鍵盤(pán)輸入一個(gè)特定詞語(yǔ)時(shí),你可以長(zhǎng)按它然后選擇添加到建議詞語(yǔ)區(qū)域,這樣就可以把這個(gè)詞加入Android字典,下次輸入時(shí)只需打入前幾個(gè)字目就可以調(diào)出這個(gè)詞。 18.同步手機(jī)照片到Picasa相冊(cè) 雖然Google的Picasa 網(wǎng)絡(luò)相冊(cè) 不及Flickr受歡迎。不過(guò)Android 2.1的3D相冊(cè)開(kāi)始支持自動(dòng)同步手機(jī)照片到Picasa帳戶,不需要 第三方軟件 就可以設(shè)置同步給了很多用戶使用Picasa的理由,不過(guò)悲劇的是Picasa在國(guó)內(nèi)無(wú) 法正 常打開(kāi),原因大家都懂的。 19.下 載網(wǎng) 頁(yè)圖片 瀏覽網(wǎng)頁(yè)時(shí)想保存圖片,只要長(zhǎng)按圖片就可以單獨(dú)保存,保存的圖片可以在相冊(cè)程序中查看。 20.管理Android通話記錄 Android通話記錄非常方便,長(zhǎng)按任意一 條播 出或者接入 電話記錄 就可以選擇刪除,非常easy。 21.使用Facebook頭像作為通訊錄聯(lián)系人照片 如果你的Android手機(jī)安裝了Facebook官方程序,可以設(shè)置自動(dòng)從Facebook下載頭像作為聯(lián)系人照片。你還可以通過(guò)文件夾功能在手機(jī)桌面建立一個(gè)Facebook通訊錄文件夾,區(qū)分你的現(xiàn)實(shí)世界好友和網(wǎng)絡(luò)好友。 22.瀏覽器多 功能按鈕 Android 2.1瀏覽器地址欄有一個(gè)多功能的按鈕,當(dāng)網(wǎng)頁(yè)正在載入時(shí),他顯示為 “X”用來(lái)取消載入,一旦頁(yè)面載入完成后它會(huì)變成書(shū)簽添加和歷 史記 錄 管理工具 ,使用起來(lái)非常方便。 23.Android網(wǎng)頁(yè)瀏覽歷史記錄快捷鍵 打開(kāi)瀏覽器長(zhǎng)按手機(jī)返回鍵就會(huì)調(diào)出網(wǎng)頁(yè)瀏覽歷史記錄窗口,比使用菜單調(diào)用要方便非常多,瀏覽器重度使用者必備。 24.使用瀏覽器“ 標(biāo)簽 頁(yè)”功能 PC上的瀏覽器“標(biāo)簽頁(yè)”已經(jīng)算是基本功能,Android 手機(jī)瀏覽器 其實(shí)也支持標(biāo)簽頁(yè)瀏覽器,只是使用起來(lái)稍顯復(fù)雜:瀏覽網(wǎng)頁(yè)時(shí)長(zhǎng)按一個(gè)url就可以選擇在新窗口打開(kāi),然后使用Menu鍵,再選擇窗口選項(xiàng)查看任意標(biāo)簽頁(yè)。 25.Android設(shè)置過(guò)個(gè)Gmail帳戶 從Android 2.1系統(tǒng)開(kāi)始支持多帳戶設(shè)置,打開(kāi)Gmail程序,通過(guò)Menu 帳戶添加帳戶 就可以增加一個(gè)或者多個(gè)gmail帳戶,不過(guò)目前Android多賬戶融合做的還不夠完美,使用起來(lái)會(huì)有一些問(wèn)題。 26.關(guān)閉Google建議搜索提速手機(jī) 如果你的Android手機(jī)是配置不高的入 門(mén)機(jī) 型,關(guān)閉Google網(wǎng)頁(yè)搜索建議會(huì)大幅提升Google搜索的性能。Google根據(jù)你輸入的內(nèi)容提供搜索建議雖然很方便,不過(guò)卻可能會(huì)導(dǎo)致性能不高的手機(jī)陷入 假死狀態(tài) 。在系統(tǒng)設(shè)置 搜索 Google搜索設(shè)置里可以禁用搜索建議。 27.在手機(jī)主屏添加“熱線電話”快捷鍵 雖然你的 手機(jī)通訊錄 有成百上千個(gè)聯(lián)系人,但是可能80%以上的通話對(duì)象只是其中的幾個(gè)人。如果把這幾個(gè)“熱線電話”在桌面建立快捷方式,點(diǎn)擊一下就可以撥號(hào)一定可以節(jié)省時(shí)間。長(zhǎng)按手機(jī)屏幕空白,選擇添加快捷方式,然后選擇直接撥打的聯(lián)系人就可以在Android手機(jī)桌面建立“熱線電話”的一鍵撥號(hào)快捷鍵。 28.建立 常用網(wǎng)站 快捷方式 上面的一條秘籍其實(shí)也適合瀏覽網(wǎng)頁(yè)。普通情況下即使你把經(jīng)常訪問(wèn)的網(wǎng)站加入書(shū)簽,你也需要先打開(kāi)瀏覽器,然后在書(shū)簽管理界面再選中你要訪問(wèn)的那一個(gè)。你也可以在書(shū)簽管理里長(zhǎng)按你一條書(shū)簽然后選擇“添加快捷方式”,這樣會(huì)在手機(jī)主屏建立這個(gè)網(wǎng)站的快捷方式圖標(biāo),點(diǎn)擊后會(huì)自動(dòng)調(diào)用瀏覽器程序打開(kāi)網(wǎng)站訪問(wèn),和一鍵撥號(hào)一樣方便。HTC Sense用戶也可以使用HTC書(shū)簽Widget來(lái)實(shí)現(xiàn)這個(gè)功能。 29.建立 音樂(lè)播放 列表快捷方式 又是一條快捷方式的秘籍,同樣也可以節(jié)省一些時(shí)間。在Android 音樂(lè)播放器 界面長(zhǎng)按自己創(chuàng)建的音樂(lè)播放列表在桌面建立快捷方式,接下來(lái)就可以一鍵播放你最?lèi)?ài)的“ 音樂(lè)排行榜 ”啦。 30.跳過(guò)Android滑動(dòng)解鎖屏幕 Android手機(jī)用戶一般都采用滑動(dòng)解鎖屏幕的方式來(lái)喚醒手機(jī),不過(guò)你可能不知道按兩下手機(jī)的Menu鍵也有同樣的效果,前提是你的手機(jī)制造商沒(méi)有移除這個(gè)功能,很多裝載HTC Sense手機(jī)可能無(wú)法使用這個(gè)特性。 31.快速刪除圖片 在 手機(jī)相冊(cè) 程序里刪除圖片每次都會(huì)跳出確認(rèn)框,這時(shí)候按一下Menu鍵可以不需確認(rèn)刪除 所有圖片 ,絕對(duì)節(jié)約時(shí)間。 32.快速輸入 特殊符號(hào) 這是一個(gè)一般人都不太注意的技巧,不過(guò)如果你是一個(gè)重度手機(jī)文字輸入用戶這個(gè)功能將非常有用。在使用Android官方 屏幕鍵盤(pán) 輸入時(shí),長(zhǎng)按任意一個(gè) 字符 可以調(diào)出這個(gè)字符對(duì)應(yīng)的特殊符號(hào),比如長(zhǎng)按S可以輸入@,長(zhǎng)按D可以輸入#,這個(gè)技巧將大幅度改善你的手機(jī)輸入速度。 33.更多Android表情 上面一條技巧也適用于Android 表情符號(hào) 輸入,長(zhǎng)按一種Android微笑表情會(huì)調(diào)出其他系統(tǒng)的微笑表情符號(hào)。 34.別人發(fā)給我的表情符號(hào)是什么意思 如果你已經(jīng)老到搞不清楚不同的笑臉表情代表什么,你可以在輸入界面按Menu鍵,選擇插入表情符號(hào),然后就可以看到所有Android表情符號(hào)以及對(duì)應(yīng)的意思解釋。 35.調(diào)整Android 拼寫(xiě)檢查 如果你在使用Android鍵盤(pán)時(shí)發(fā)現(xiàn)拼寫(xiě)檢查功能使用起來(lái)不方便,可以在設(shè)置 語(yǔ)言和鍵盤(pán) Android鍵盤(pán)里關(guān)閉。 36.安裝一個(gè)Android 文件管理 器 文件管理是Android系統(tǒng)目前最大的一個(gè)功能缺失之一,雖然你可以使用Android 系統(tǒng)工具 完成刪除圖片或者音樂(lè)等操作,但是從Android Market下載一個(gè) 文件管理軟件 將讓你在Android手機(jī)管理文件和PC上一樣高效,目前Android系統(tǒng)最好的文件管理軟件是Astro,推薦下載安裝。 37.管理你的Android電池使用 你可能會(huì)突然發(fā)現(xiàn)自己的Android手機(jī)耗電量急劇上升卻又搞不清楚究竟是哪里出了問(wèn)題。Android系統(tǒng)其實(shí)已經(jīng)手機(jī)了電池使用的詳細(xì)統(tǒng)計(jì)。在手機(jī)設(shè)置菜單 關(guān)于手機(jī) 電池使用選項(xiàng)可以查看不同Android功能模塊使用電池電量的比例,這樣你就可以搞清楚哪個(gè)程序出了問(wèn)題,再?zèng)Q定是否要?jiǎng)h除。 38.從Android鍵盤(pán)設(shè)置鍵盤(pán) Android的原生 鍵盤(pán)輸入法 還提供一個(gè)快捷功能,長(zhǎng)按123鍵可以調(diào)出Android 輸入法 的設(shè)置選項(xiàng)。 39.快速結(jié)束輸入 在 輸入過(guò)程 中雙擊空格鍵,將會(huì)自動(dòng)停止輸入甚至加上一個(gè) 句號(hào) 。 40.清除手機(jī)輸入歷史 當(dāng)你想完全清楚手機(jī)數(shù)據(jù)的時(shí)候往往會(huì)忽略這么一條。別忘了手機(jī)設(shè)置 語(yǔ)言和鍵盤(pán) 用戶字典里清楚所有的輸入歷史。 41.讓手機(jī)說(shuō)一口純真 英國(guó) 腔 你可能發(fā)現(xiàn)在使用Google Maps導(dǎo)航的時(shí)候 英語(yǔ)發(fā)音 非常奇怪,可以在Menu 設(shè)置 文字轉(zhuǎn)語(yǔ)音 里勾選“時(shí)鐘使用我的設(shè)置”選項(xiàng),接下來(lái)你會(huì)發(fā)現(xiàn)導(dǎo)航發(fā) 音變 成了一口純真英國(guó)腔,聽(tīng)起來(lái)舒服多了。 42.刪除那些臃腫的程序 使用不支持APP2SD功能的Android手機(jī)的程序狂人們可能經(jīng)常面臨手機(jī)內(nèi)存不足的窘境,需要?jiǎng)h除部分應(yīng)用程序解 放空 間。在設(shè)置 應(yīng)用程序 管理應(yīng)用程序 界面可以按Menu鍵按照程序大小排序,優(yōu)先刪除那些占用大量空間的程序。 43.激活 揚(yáng)聲器 有時(shí)候會(huì)碰到接聽(tīng)電話時(shí)環(huán)境太吵雜聽(tīng)不清楚的情況,在通話界面按Menu鍵然后選擇“揚(yáng)聲器”選項(xiàng),保證不但你能聽(tīng)清,周?chē)艘材苈?tīng)清電話那頭在說(shuō)什么。 44.刪除和某人的整條短信對(duì)話 如果 手機(jī)短信 里隱藏了不可高人的秘密,回家又不想被老婆發(fā)現(xiàn)。長(zhǎng)按這條短信對(duì)話列表,然后選擇刪除,所有和對(duì)方發(fā)的短信都會(huì)被刪除。 45.使用自己的圖片做 壁紙 拍了一張很棒的 風(fēng)景 照,或者想把家人的照片用來(lái)作為壁紙,只要長(zhǎng)按手機(jī)屏幕,選擇壁紙,然后選擇你想用來(lái)做壁紙的圖片就可以完成操作,設(shè)置壁紙前你甚至可以剪切其中的一塊來(lái)作為最終的壁紙圖片。 46.Android系統(tǒng)最新運(yùn)行的 程序列表 長(zhǎng)按Home鍵會(huì)調(diào)出Android系統(tǒng)最近運(yùn)行的程序列表,如果你剛不小心關(guān)閉了一個(gè)程序,可以用這個(gè)辦法再次打開(kāi)使用。 47.關(guān)閉 手機(jī)動(dòng)畫(huà) Android系統(tǒng)各種動(dòng)畫(huà)效果雖然可以讓你的手機(jī)看起來(lái)很酷,不過(guò)也會(huì)消耗很多電池電量,也會(huì)影響手機(jī)性能。平時(shí)可以在設(shè)置 聲音和現(xiàn)實(shí) 動(dòng)畫(huà)里關(guān)閉相關(guān)選項(xiàng),大不了為其他用戶做演示的時(shí)候再打開(kāi)照樣可以讓別人感到驚艷。 48.Android 系統(tǒng)集成 進(jìn)程管理 Android系統(tǒng)其實(shí)也有進(jìn)程查殺的功能,只不過(guò)隱藏的非常深。在手機(jī) 設(shè)置 應(yīng)用程序 里可以查看正在運(yùn)行的服務(wù),點(diǎn)擊相關(guān)進(jìn)程就可以強(qiáng)行關(guān)閉。不過(guò)這個(gè)功能比起第三方進(jìn)程管理工具還是不夠人性化。 49.設(shè)置手機(jī)解鎖圖案 為Android手機(jī)設(shè)置解鎖圖案可以增加一點(diǎn)手機(jī)的安全性,起碼可以防止手機(jī)被 居心 不良的人 偷窺 ,只不過(guò)千萬(wàn)不要自己忘記了這個(gè)解鎖圖案,不然后果會(huì)很?chē)?yán)重。 50.設(shè)置手機(jī)屏幕充電時(shí)不會(huì)休眠 如果不是因?yàn)楹碾姷脑蜃屖謾C(jī)屏幕一直不休眠也是一件不錯(cuò)的事情,特別是當(dāng)你的手機(jī)整夜充電的時(shí)候可以借助軟件讓你的手機(jī)變身一部電 子時(shí) 鐘,既方便隨時(shí)查看時(shí)間還可以充當(dāng) 小夜燈 。在系統(tǒng)設(shè)置 應(yīng)用程序 開(kāi)發(fā)里勾選“保持喚醒狀態(tài)”選項(xiàng)開(kāi)啟這個(gè)功能。
1、android:clipToPadding
意思是控件的繪制區(qū)域是否在padding里面。默認(rèn)為true。如果你設(shè)置了此屬性值為false,就能實(shí)現(xiàn)一個(gè)在布局上事半功陪的效果。先看一個(gè)效果圖。
上圖中的ListView頂部默認(rèn)有一個(gè)間距,向上滑動(dòng)后,間距消失,如下圖所示。
如果使用margin或padding,都不能實(shí)現(xiàn)這個(gè)效果。加一個(gè)headerView又顯得大材小用,而且過(guò)于麻煩。此處的clipToPadding配合paddingTop效果就剛剛好。
同樣,還有另外一個(gè)屬性也很神奇:android:clipChildren,具體請(qǐng)參考:【Android】神奇的android:clipChildren屬性
2、match_parent和wrap_content
按理說(shuō)這兩個(gè)屬性一目了然,一個(gè)是填充布局空間適應(yīng)父控件,一個(gè)是適應(yīng)自身內(nèi)容大小。但如果在列表如ListView中,用錯(cuò)了問(wèn)題就大了。ListView中的getView方法需要計(jì)算列表?xiàng)l目,那就必然需要確定ListView的高度,onMesure才能做測(cè)量。如果指定了wrap_content,就等于告訴系統(tǒng),如果我有一萬(wàn)個(gè)條目,你都幫我計(jì)算顯示出來(lái),然后系統(tǒng)按照你的要求就new了一萬(wàn)個(gè)對(duì)象出來(lái)。那你不悲劇了?先看一個(gè)圖。
假設(shè)現(xiàn)在ListView有8條數(shù)據(jù),match_parent需要new出7個(gè)對(duì)象,而wrap_content則需要8個(gè)。這里涉及到View的重用,就不多探討了。所以這兩個(gè)屬性的設(shè)置將決定getView的調(diào)用次數(shù)。
由此再延伸出另外一個(gè)問(wèn)題:getView被多次調(diào)用。
什么叫多次調(diào)用?比如position=0它可能調(diào)用了幾次。看似很詭異吧。GridView和ListView都有可能出現(xiàn),說(shuō)不定這個(gè)禍?zhǔn)拙褪莣rap_content。說(shuō)到底是View的布局出現(xiàn)了問(wèn)題。如果嵌套的View過(guò)于復(fù)雜,解決方案可以是通過(guò)代碼測(cè)量列表所需要的高度,或者在getView中使用一個(gè)小技巧: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)這個(gè)Bug的場(chǎng)景還是很無(wú)語(yǔ)的。一開(kāi)始我用ViewPager + PhotoView(一個(gè)開(kāi)源控件)顯示圖片,在多點(diǎn)觸控放大縮小時(shí)就出現(xiàn)了這個(gè)問(wèn)題。一開(kāi)始我懷疑是PhotoView的bug,找了半天無(wú)果。要命的是不知如何try,老是crash。后來(lái)才知道是android遺留下來(lái)的bug,源碼里沒(méi)對(duì)pointer index做檢查。改源碼重新編譯不太可能吧。明知有exception,又不能從根本上解決,如果不讓它c(diǎn)rash,那就只能try-catch了。解決辦法是:自定義一個(gè)ViewPager并繼承ViewPager。請(qǐng)看以下代碼:
/**
* 自定義封裝android.support.v4.view.ViewPager,重寫(xiě)onInterceptTouchEvent事件,捕獲系統(tǒng)級(jí)別異常
*/
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點(diǎn)擊事件無(wú)響應(yīng)
listView的Item點(diǎn)擊事件突然無(wú)響應(yīng),問(wèn)題一般是在listView中加入了button、checkbox等控件后出現(xiàn)的。這個(gè)問(wèn)題是聚焦沖突造成的。在android里面,點(diǎn)擊屏幕之后,點(diǎn)擊事件會(huì)根據(jù)你的布局來(lái)進(jìn)行分配的,當(dāng)你的listView里面增加了button之后,點(diǎn)擊事件第一優(yōu)先分配給你listView里面的button。所以你的點(diǎn)擊Item就失效了,這個(gè)時(shí)候你就要根據(jù)你的需求,是給你的item的最外層layout設(shè)置點(diǎn)擊事件,還是給你的某個(gè)布局元素添加點(diǎn)擊事件了。
解決辦法:在ListView的根控件中設(shè)置(若根控件是LinearLayout, 則在LinearLayout中加入以下屬性設(shè)置)descendantFocusability屬性。
android:descendantFocusability="blocksDescendants"
官方文檔也是這樣說(shuō)明。
5、getSupportFragmentManager()和getChildFragmentManager()
有一個(gè)需求,F(xiàn)ragment需要嵌套3個(gè)Fragment?;旧峡梢韵氲接肰iewPager實(shí)現(xiàn)。開(kāi)始代碼是這樣寫(xiě)的:
mViewPager.setAdapter(new CustomizeFragmentPagerAdapter(getActivity().getSupportFragmentManager(), subFragmentList));
導(dǎo)致的問(wèn)題是嵌套的Fragment有時(shí)會(huì)莫名其妙不顯示。開(kāi)始根本不知道問(wèn)題出現(xiàn)在哪,當(dāng)你不知道問(wèn)題的原因時(shí),去解決這個(gè)問(wèn)題顯然比較麻煩。經(jīng)過(guò)一次又一次的尋尋覓覓,終于在stackoverflow上看到了同樣的提問(wèn)。說(shuō)是用getChildFragmentManager()就可以了。真是這么神奇!
mViewPager.setAdapter(new CustomizeFragmentPagerAdapter(getChildFragmentManager, subFragmentList));
讓我們看一下這兩個(gè)有什么區(qū)別。首先是getSupportFragmentManager(或者getFragmentManager)的說(shuō)明:
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)說(shuō)得比較明白了。
6、ScrollView嵌套ListView
這樣的設(shè)計(jì)是不是很奇怪??jī)蓚€(gè)同樣會(huì)滾動(dòng)的View居然放到了一起,而且還是嵌套的關(guān)系。曾經(jīng)有一個(gè)這樣的需求:界面一共有4個(gè)區(qū)域部分,分別是公司基本信息(logo、名稱、法人、地址)、公司簡(jiǎn)介、公司榮譽(yù)、公司口碑列表。每部分內(nèi)容都需要根據(jù)內(nèi)容自適應(yīng)高度,不能寫(xiě)死。鄙人首先想到的也是外部用一個(gè)ScrollView包圍起來(lái)。然后把這4部分分別用4個(gè)自定義控件封裝起來(lái)。基本信息和公司簡(jiǎn)介比較簡(jiǎn)單,榮譽(yù)需要用到RecyclerView和TextView的組合,RecyclerView(當(dāng)然,用GridView也可以,3列多行的顯示)存放榮譽(yù)圖片,TextView顯示榮譽(yù)名稱。最后一部分口碑列表當(dāng)然是ListView了。這時(shí)候,問(wèn)題就出來(lái)了。需要解決ListView放到ScrollView中的滑動(dòng)問(wèn)題和RecyclerView的顯示問(wèn)題(如果RecyclerView的高度沒(méi)法計(jì)算,你是看不到內(nèi)容的)。
當(dāng)然,網(wǎng)上已經(jīng)有類(lèi)似的提問(wèn)和解決方案了。
給一個(gè)網(wǎng)址:
四種方案解決ScrollView嵌套ListView問(wèn)題
ListView的情況還比較好解決,優(yōu)雅的做法無(wú)非寫(xiě)一個(gè)類(lèi)繼承ListView,然后重寫(xiě)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可以重寫(xiě)onMeasure解決,RecyclerView重寫(xiě)這個(gè)方法是行不通的。
說(shuō)到底其實(shí)計(jì)算高度嘛。有兩種方式,一種是動(dòng)態(tài)計(jì)算RecycleView,然后設(shè)置setLayoutParams;另外一種跟ListView的解決方式類(lèi)似,定義一個(gè)類(lèi)繼承LinearLayoutManager或GridLayoutManager(注意:可不是繼承RecyclerView),重寫(xiě)onMeasure方法(此方法比較麻煩,此處不表,下次寫(xiě)一篇文章再作介紹)。
動(dòng)態(tài)計(jì)算高度如下:
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ù)端返回榮譽(yù)圖片后,由于是3列顯示的方式,只需要計(jì)算需要顯示幾行,然后給定行間距和圖片的高度,再設(shè)置setLayoutParams就行了。
int lines = (int) Math.ceil(totalImages / 3d);
至此,這個(gè)奇怪的需求得到了解決。
可是在滑動(dòng)的時(shí)候,感覺(jué)出現(xiàn)卡頓的現(xiàn)象。聰明的你肯定想到是滑動(dòng)沖突了。應(yīng)該是ScrollView的滑動(dòng)干擾到了ListView的滑動(dòng)。怎么辦呢?能不能禁掉ScrollView的滑動(dòng)?
百度一下,你肯定能搜索到答案的。先上代碼:
/**
* @author Leo
*
* ? ? ? ? Created in 2015-9-12
* ? ? ? ? 攔截ScrollView滑動(dòng)事件
*/
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()這個(gè)方法就好辦了。這個(gè)方法的注釋是:Distance in pixels a touch can wander before we think the user is scrolling。說(shuō)這是一個(gè)距離,表示滑動(dòng)的時(shí)候,手的移動(dòng)要大于這個(gè)距離才開(kāi)始移動(dòng)控件,如果小于此距離就不觸發(fā)移動(dòng)。
看似很完美了。
但是還有另外一個(gè)問(wèn)題:我每次加載這個(gè)界面花的時(shí)間太長(zhǎng)了,每次由其它界面啟動(dòng)這個(gè)界面時(shí),都要卡上1~2秒,而且因手機(jī)性能時(shí)間不等。并不是由于網(wǎng)絡(luò)請(qǐng)求,取數(shù)據(jù)由子線程做,跟UI線程毫無(wú)關(guān)系。這樣的體驗(yàn)自己看了都很不爽。
幾天過(guò)去了,還是那樣。馬上要給老板演示了。這樣的體驗(yàn)要被罵十次呀。
難道跟ScrollView的嵌套有關(guān)?
好吧,那我重構(gòu)代碼。不用ScrollView了。直接用一個(gè)ListView,然后add一個(gè)headerView存放其它內(nèi)容。因?yàn)榭丶庋b得還算好,沒(méi)改多少布局就OK了,一運(yùn)行,流暢順滑,一切迎刃而解!
本來(lái)就是這么簡(jiǎn)單的問(wèn)題,為什么非得用ScrollView嵌套呢?
stackoverflow早就告訴你了,不要這樣嵌套!不要這樣嵌套!不要這樣嵌套!重要的事情說(shuō)三遍。
ListView inside ScrollView is not scrolling on Android
當(dāng)然,從android 5.0 Lollipop開(kāi)始提供了一種新的API支持嵌入滑動(dòng),此時(shí),讓像這樣的需求也能很好實(shí)現(xiàn)。
此處給一個(gè)網(wǎng)址,大家有興趣自行了解,此處不再討論。
Android NestedScrolling 實(shí)戰(zhàn)
7、EmojiconTextView的setText(null)
這是開(kāi)源表情庫(kù)com.rockerhieu.emojicon中的TextView加強(qiáng)版。相信很多人用到過(guò)這個(gè)開(kāi)源工具包。TextView用setText(null)完全沒(méi)問(wèn)題。但EmojiconTextView setText(null)后就悲劇了,直接crash,顯示的是null pointer。開(kāi)始我懷疑時(shí)這個(gè)view沒(méi)初始化,但并不是。那就調(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看來(lái)沒(méi)什么問(wèn)題。點(diǎn)SpannableStringBuilder進(jìn)去看看,源碼原來(lái)是這樣的:
/**
* 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());
}
好吧。問(wèn)題已經(jīng)找到了,text.length(),不空指針才怪。
text = text == null ? "" : text;
SpannableStringBuilder builder = new SpannableStringBuilder(text);
加一行判斷就行了。
先想到這么多,以后再補(bǔ)充。
網(wǎng)頁(yè)題目:android技巧,Android基礎(chǔ)教程
網(wǎng)站鏈接:http://jinyejixie.com/article0/dsdghio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、、虛擬主機(jī)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)