谷歌官方安卓開發(fā)學(xué)習(xí)筆記(二)

學(xué)習(xí)了如何開發(fā)一個(gè)非常簡單的安卓工程:Hello World 之后芽淡,現(xiàn)在應(yīng)該開始學(xué)習(xí)最初步的用戶交互界面了


構(gòu)建一個(gè)簡單的用戶界面

Android應(yīng)用程序的用戶界面是使用布局 (ViewGroup對象)和小部件(View對象)的層次結(jié)構(gòu)構(gòu)建的。布局是不可見的容器,用于控制其子視圖在屏幕上的位置赌蔑。小部件是UI組件融蹂,例如按鈕和文本框绞幌。

上面的話看起來異常難懂是不是减响?沒關(guān)系脚囊,現(xiàn)在不需要去了解這些到底是怎么回事转晰,只需要一步一步做出你的程序就好芦拿。

  • 新建一個(gè)工程文件,像我們的之前學(xué)過的那樣挽霉,創(chuàng)建一個(gè)新的empty activity

  • 在Android Studio的狀態(tài)欄的“project”防嗡,打開app> res> layout> activity_main.xml

  • 為了使在你能看到更多的空間,我們先隱藏幾個(gè)窗口


    image.png
  • 點(diǎn)擊圖上畫紅框的按鈕即可侠坎,這個(gè)按鈕點(diǎn)擊后會(huì)自動(dòng)收縮它所在的那個(gè)部分的窗口蚁趁,同理,你可以點(diǎn)擊AS上任意你想隱藏的窗口实胸,做同樣的處理他嫡,直到你認(rèn)為工作區(qū)域足夠舒適。

  • 如果你的編輯器顯示的是一堆代碼庐完,不用害怕钢属,請單擊窗口底部的“ 設(shè)design”選項(xiàng)卡。


    image.png
  • 之后依次點(diǎn)擊圖上畫紅框的按鈕门躯,直到和圖片上的狀態(tài)一摸一樣淆党。
    (Pixel XL 那一欄可選擇多種不同的機(jī)型,建議選擇近兩年谷歌出的手機(jī)讶凉,盡量不要選nexus系列染乌,因?yàn)槟甏^于久遠(yuǎn))


    image.png
  • 單擊工具欄中的邊距設(shè)置,也就是圖上機(jī)型按鈕下面的那個(gè)魔法棒圖標(biāo)旁邊的按鈕 懂讯,然后選擇 16(仍然可以稍后調(diào)整每個(gè)視圖的邊距荷憋,我們選16是為了配合谷歌官方的教程)。

  • 下面我們解釋下左下角的Component Tree窗口褐望。它負(fù)責(zé)顯示布局(layout)的視圖層次結(jié)構(gòu)勒庄。在這種情況下,根視圖是一個(gè)ConstraintLayout瘫里,只包含一個(gè) TextView(也就是hello world)实蔽。
    (在傳統(tǒng)的Android開發(fā)當(dāng)中,界面基本都是靠編寫XML代碼完成的减宣,然而自從Google大幅度更新AS后盐须,ConstraintLayout是用可視化的方式來編寫界面的一大神器,也就是說漆腌,在目前的學(xué)習(xí)中贼邓,你不需要花太大的精力區(qū)學(xué)習(xí)xml相關(guān)的知識(shí))

ConstraintLayout是一種布局,它根據(jù)同級視圖和父布局的約束來定義每個(gè)視圖的位置闷尿。通過這種方式塑径,您可以使用平面視圖層次結(jié)構(gòu)創(chuàng)建簡單和復(fù)雜的布局。也就是說填具,它避免了嵌套這種情況的出現(xiàn)统舀。

添加一個(gè)文本框

需要?jiǎng)h除布局中已有的內(nèi)容。因此劳景,在左邊的窗口中單擊 TextView誉简,然后按Delete。(當(dāng)然也可以直接用鍵盤的delete刪除)

點(diǎn)擊palette盟广,會(huì)出現(xiàn)許多神奇的工具和按鈕闷串,搜索plain text(純文本),將純文本拖放到右邊的設(shè)計(jì)編輯器中筋量,它是接受純文本輸入的一個(gè)部件(變成應(yīng)用后烹吵,我們可以在這個(gè)地方輸入文字)。


image.png

點(diǎn)擊設(shè)計(jì)編輯器中的視圖〗拔洌現(xiàn)在可以在每個(gè)角落(方塊)看到調(diào)整大小手柄肋拔,并在每側(cè)(圓圈)上顯示約束錨點(diǎn)。(如圖操作)


image.png

拖拽后上左都設(shè)置局限為16呀酸,看起來像下面的這張圖


image.png

如果發(fā)現(xiàn)了右邊出現(xiàn)了黃色的感嘆號(hào)小三角凉蜂,并且點(diǎn)擊后如下圖顯示


image.png

需要進(jìn)行下面的操作

  1. 點(diǎn)擊design旁邊的text,切換到xml代碼界面性誉,在
    android:id="@+id/editText"
    后面添加一行
    android:labelFor="@id/editText"
    即可解決第一個(gè)感嘆號(hào)的問題

2.切換到app>res>values>strings.xml 依次點(diǎn)擊圖上的按鈕


image.png

3.點(diǎn)擊加號(hào)
image.png

創(chuàng)建一個(gè)新字符串作為文本框的“提示文本”窿吩。


image.png

創(chuàng)建完后,為了方便我們的下一步艾栋,我們再創(chuàng)建一個(gè)馬上要添加的按鈕的文本爆存。
image.png

4.返回之前的activity_main.xml文件,回到design界面蝗砾,雙擊文本框先较,右邊會(huì)出現(xiàn)對應(yīng)的屬性框,點(diǎn)擊圖上的按鈕悼粮,選擇我們之前建好的message文本闲勺,即可消除第二個(gè)感嘆號(hào)。


同理扣猫,我們再選擇右側(cè)的palette面板菜循,搜索button,拖拽至編輯器申尤,如圖操作


image.png

之后從中間的線拖拽至文本框中間癌幕,然后再點(diǎn)擊按鈕的左邊框衙耕,和文本的右邊框之間添加一個(gè)16sp的限制(如下圖)

image.png

此時(shí)編輯好后,雙擊按鈕勺远,出現(xiàn)按鈕對應(yīng)的屬性頁面橙喘,選擇文字那一項(xiàng),和之前的純文本的文字替換做相同處理胶逢,換成我們之前創(chuàng)建的send文字厅瞎。

為了讓我們的程序響應(yīng)不同屏幕尺寸的布局,現(xiàn)在將使文本框伸展以填充所有剩余的水平空間初坠。

選擇兩個(gè)視圖(單擊一個(gè)和簸,按住Shift并單擊另一個(gè)視圖),然后右鍵單擊視圖并選擇Chain > Create Horizontal Chain碟刺。布局應(yīng)如圖所示锁保。


image.png

接下來更改按鈕的右邊距也為16,如圖


image.png

選擇文本框查看屬性南誊。單擊寬度指示器兩次身诺,以使其設(shè)置為Match Constraints


image.png

此時(shí)此刻,如果你點(diǎn)擊最下面的text抄囚,你的代碼應(yīng)該是這個(gè)樣子

<EditText
       android:id="@+id/editText"
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_marginStart="16dp"
       android:layout_marginLeft="16dp"
       android:layout_marginTop="16dp"
       android:ems="10"
       android:hint="@string/edit_message"
       android:inputType="textPersonName"
       app:layout_constraintEnd_toStartOf="@+id/button"
       app:layout_constraintHorizontal_bias="0.5"
       app:layout_constraintStart_toStartOf="parent"
       app:layout_constraintTop_toTopOf="parent" />

   <Button
       android:id="@+id/button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginEnd="16dp"
       android:layout_marginStart="16dp"
       android:text="@string/button_send"
       app:layout_constraintBaseline_toBaselineOf="@+id/editText"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintHorizontal_bias="0.5"
       app:layout_constraintStart_toEndOf="@+id/editText" />
</android.support.constraint.ConstraintLayout>  

現(xiàn)在插上手機(jī)霉赡,運(yùn)行一下這個(gè)程序試試吧,你會(huì)看到程序神奇的出現(xiàn)在了你的手機(jī)上幔托。下一次穴亏,我們將為這個(gè)程序添加一些小功能。


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末重挑,一起剝皮案震驚了整個(gè)濱河市嗓化,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谬哀,老刑警劉巖刺覆,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異史煎,居然都是意外死亡谦屑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門篇梭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來氢橙,“玉大人,你說我怎么就攤上這事恬偷『肥郑” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坦康。 經(jīng)常有香客問我竣付,道長,這世上最難降的妖魔是什么涝焙? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任卑笨,我火速辦了婚禮孕暇,結(jié)果婚禮上仑撞,老公的妹妹穿的比我還像新娘。我一直安慰自己妖滔,他們只是感情好隧哮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著座舍,像睡著了一般沮翔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上曲秉,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天采蚀,我揣著相機(jī)與錄音,去河邊找鬼承二。 笑死榆鼠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亥鸠。 我是一名探鬼主播妆够,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼负蚊!你這毒婦竟也來了神妹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤家妆,失蹤者是張志新(化名)和其女友劉穎鸵荠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伤极,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛹找,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了塑荒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熄赡。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖齿税,靈堂內(nèi)的尸體忽然破棺而出彼硫,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布拧篮,位于F島的核電站词渤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏串绩。R本人自食惡果不足惜缺虐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望礁凡。 院中可真熱鬧高氮,春花似錦、人聲如沸顷牌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窟蓝。三九已至罪裹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間运挫,已是汗流浹背状共。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谁帕,地道東北人峡继。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像雇卷,于是被迫代替她去往敵國和親鬓椭。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,734評論 25 707
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程关划,因...
    小菜c閱讀 6,365評論 0 17
  • 我將靈魂抽離 沖出人群 是山小染,是水,還是漂泊的云 來到的地方 有一縷炊煙贮折,一碗稀粥 還有一個(gè)我愛的姑娘 圍著藍(lán)色的...
    隅川閱讀 514評論 10 20
  • 距離2018年裤翩,還有七天,這一天被稱為小年调榄,家人團(tuán)圓踊赠,和睦融洽的日子,至少每庆,我是這樣認(rèn)為的筐带。 傷春悲秋,莫名感傷的...
    花卷的日常閱讀 161評論 1 0
  • 我想你 就像早上想要晨跑的心堅(jiān)定不移 就像正午的陽光不遠(yuǎn)不近的距離 就像下午的晚霞橫跨在半個(gè)天空 就像夜晚的星星只...
    雁壹閱讀 389評論 3 2