日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android官方开发文档Training系列课程中文版:构建第一款安卓应用之创建用户界面

發(fā)布時間:2024/7/5 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android官方开发文档Training系列课程中文版:构建第一款安卓应用之创建用户界面 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文地址:http://android.xsoftlab.net/training/basics/firstapp/building-ui.html

在這節(jié)課中,你會創(chuàng)建一個xml的布局文件,它包含一個Text成員和一個Button成員。在下節(jié)課中,你會學(xué)習(xí)到當(dāng)Button按下后啟動并發(fā)送Text成員的內(nèi)容到另一個Activity中。

安卓應(yīng)用的靈活用戶界面是建立在View和ViewGroup的層級基礎(chǔ)之上。View是比如Button或者TextView這種通用的UI控件,ViewGroup是一種不可見的布局容器,它定義了子View該如何被放置,比如放置在Grid或者垂直的列表中。

布局都是ViewGroup的子類,在這個練習(xí)中,我們使用LinearLayout做演示。

創(chuàng)建一個線性布局

  • 在AS中,打開res/layout目錄下的activity_my.xml文件。
    當(dāng)你在創(chuàng)建這個工程的時候你選擇了一個空白的Activity模板,這個工程包含一個activity_my.xml文件,文件中有一個RelativeLayout根View和一個TextView子View。
  • 在Preview模塊下,點(diǎn)擊隱藏按鈕來關(guān)閉預(yù)覽模板。
  • 刪除< TextView >元素。
  • 更改< RelayoutLayout >元素為< LinearLayout >.
  • 添加 android:orientation 屬性然后設(shè)置值為”horizontal”;
  • 移除android:padding屬性和tools:context屬性。
    res/layout/activity_my.xml
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" > </LinearLayout>

    LinearLayout是一個ViewGroup,它是ViewGroup的子類,它可以通過屬性android:orientation布置子View為垂直排列或者水平排列。每一個LinearLayout的子View都會按照在XML文件中的順序方式顯示在屏幕上。

    有兩個屬性:android:layout_width 和 android:layout_height,對于所有的View的尺寸來說是必須的。

    因為LinearLayout是布局的根目錄,它應(yīng)該會填充屏幕的整塊區(qū)域,因為在寬和高的屬性中設(shè)置了”match_parent”,這個值表明了這個View應(yīng)該擴(kuò)展它的寬或者高到父View的高寬。

    添加一個Text屬性

    正如每一個View對象一樣,你必須在XML文件中聲明EditText對象的屬性。
    1. 在activity_my.xml文件的< LinearLayout >的元素中,定義一個< EditText >的元素,并且設(shè)置它的id屬性為@+id/edit_message。
    2. 設(shè)置layout_width和layout_height屬性為wrap_content。
    3. 定義hint屬性為一個名稱為edit_message的字符串。
    < EditText >元素應(yīng)該是這樣的:
    res/layout/activity_my.xml

    <EditText android:id="@+id/edit_message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="@string/edit_message" />

    以下是你添加的< EditText >的屬性介紹:
    android:id

    • 這個提供了View的唯一標(biāo)識符,你可以從應(yīng)用代碼中使用這個對象的引用,比如用來讀取并且操作這個對象。
    • 符號@在xml中引用任何資源對象的時候是必須的。緊接著后面跟的是資源的類型,在這里是id,再最后是資源的名稱,這里是edit_message。
    • 在資源類型前的符號+是指當(dāng)你第一次要指定一個資源ID。當(dāng)你編譯APP的時候,SDK工具會使用這個ID的名稱在工程的gen/R.java文件中創(chuàng)建一個新的資源ID的引用,這個引用表示的就是XML中的EditText對象。如果使用這種方式聲明了ID,那么在后面就不需要再使用+,其它地方引用的時候也不需要+。

    android:layout_width 和 android:layout_height

    • 用來指定高寬的尺寸,”wrap_content”是指View應(yīng)該根據(jù)它內(nèi)容的多少來指定它的大小。如果你想使用 “match_parent”,那么EditText元素將會填充整個屏幕,因為它會擴(kuò)展到父布局LinearLayout的大小。

    android:hint

    • 這個屬性用來在Text中內(nèi)容為空的時候展示,為了不使用硬編碼的字符串,這里使用了@string/edit_message的值引用另一個文件中的一個字符串資源。這里不需要使用+標(biāo)志,然而,因為你還沒有指定一個字符串資源,你將會在編譯的時候看到錯誤,你將會在下面定義了字符串資源后修復(fù)這個錯誤。

    Note: 這里的字符串資源命名和EditText元素的名稱一樣,但是,它們屬于不同的資源類型,一個是string,一個是id,所以使用相同的名稱并無大礙。

    添加一個字符串資源

    默認(rèn)情況下,在工程的res/values/下的strings.xml文件便是字符串資源文件了。這里,你將會添加一個名為”edit_message”的字符串然后設(shè)置其值為”Enter a message.”
    1. 在AS中,在res/values目錄下打開string.xml
    2. 添加一行名為”edit_message”值為”Enter a message.”的字符串資源
    3. 添加一行名為”button_send”值為“Send”的字符串資源。
    4. 移除”hello world”那一行。
    那么strings.xml應(yīng)該就是這樣的:

    <?xml version="1.0" encoding="utf-8"?> <resources><string name="app_name">My First App</string><string name="edit_message">Enter a message</string><string name="button_send">Send</string><string name="action_settings">Settings</string><string name="title_activity_main">MainActivity</string> </resources>

    在用戶界面上的文字,總是要指定每一個資源。字符串資源允許你管理所有的UI文字,它可以使你更輕松的找到和更新文字。外部化存儲的字符串資源允許你去簡單定義不同的語言版本app

    添加一個按鈕

  • 在AS中,打開res/layout下的activity_my.xml文件。
  • 在< LinearLayout >標(biāo)簽中,< EditText > 元素后面定義一個< Button >.
  • 設(shè)置按鈕的高寬為”wrap_content”,所以按鈕的高寬就是根據(jù)內(nèi)容的大小來定義的。
  • 使用android:text屬性定義按鈕的文本,設(shè)置其值為剛剛在string.xml中定義的button_send的字符串資源
  • 你的< LinearLayout >應(yīng)該看起來像這樣:
    res/layout/activity_my.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><EditText android:id="@+id/edit_message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:hint="@string/edit_message" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button_send" /> </LinearLayout>

    Note: 這里不需要給Button指定android:id屬性,因為這里不需要在Activity代碼中使用Button的引用。

    現(xiàn)在這個布局文件顯示的應(yīng)該是這個樣子:

    這下按鈕就可以工作了,但是和text不同,text稍后會被用戶輸入一些東西,它便會很好的填充屏幕上沒有使用的空間。你可以使用LinearLayout的權(quán)重屬性做到這一點(diǎn),可以使用android:layout_weight來指定權(quán)重。

    如果所有的weight值都是0,那么如果你在其中一個View中指定任何比0大的值,那么這個View將會把剩下的空余空間全部占滿。

    使輸入框填充屏幕的寬度

    如果需要使EditText占據(jù)屏幕上的剩余空間,那么只需要做到以下幾點(diǎn):
    1. 在EditText的屬性中添加layout_weight,并設(shè)置值為1。
    2. 另外,EditText的layout_width屬性可以設(shè)置為0dp:

    <EditText android:layout_weight="1"android:layout_width="0dp"... />

    3 . 當(dāng)指定了權(quán)重會影響布局效果,應(yīng)該把EditText的寬設(shè)置為0,因為使用了wrap_content的話會要求系統(tǒng)計算一次不必要的寬度,因為權(quán)重會要求系統(tǒng)進(jìn)行重新計算并使用剩余的寬度。
    以下就是使用了權(quán)重的效果:

    以下是修改好的布局:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><EditText android:id="@+id/edit_message"android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"android:hint="@string/edit_message" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button_send" /> </LinearLayout>

    運(yùn)行APP

    在AS中點(diǎn)擊toolbar上的Run按鈕。

    如果要使用命令行,切換路徑到工程下,然后執(zhí)行:

    ant debug
    adb install bin/MyFirstApp-debug.apk

    下一節(jié)會學(xué)習(xí)如何響應(yīng)button的點(diǎn)擊事件,讀取EditText的內(nèi)容,然后啟動另一個Activity。

    總結(jié)

    以上是生活随笔為你收集整理的Android官方开发文档Training系列课程中文版:构建第一款安卓应用之创建用户界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本女人性视频 | 中出av在线 | 久久九精品 | 日本加勒比一区 | 午夜寻花 | 密桃av在线 | 好姑娘在线观看高清完整版电影 | 男人日女人免费视频 | 精品免费在线观看 | 欧美日韩a级 | 亚洲高清欧美 | 精品在线观看免费 | 性生活视频网站 | 日韩成人福利视频 | 欧美成人乱码一二三四区免费 | 在线看www| 蜜芽在线视频 | 日本伦理片在线播放 | 丝袜 中出 制服 人妻 美腿 | 日韩福利片在线观看 | 欧美精品乱人伦久久久久久 | 影音先锋波多野结衣 | 大色av | 91 久久| 亚洲国产乱 | 激情综合啪啪 | 午夜性福利视频 | 91精品久久久久久久久中文字幕 | a天堂在线视频 | 日韩中文字幕在线不卡 | a级片免费观看 | 青少年xxxxx性开放hg | 小蝌蚪av | k8经典成人理伦片 | 在线手机av | 黄色免费看视频 | 日本美女黄网站 | 在线视频免费播放 | 99re这里都是精品 | 免费黄色三级网站 | 国内精品久久久久久久久 | 天天亚洲 | av最新资源 | 国产一二三区免费视频 | 国产第一亚洲 | 日韩成人在线免费视频 | 国产精品一区二区三区高潮 | 国模叶桐尿喷337p人体 | 日本美女黄网站 | 91插插插插 | 亚洲一道本 | 国产午夜精品无码 | 一级片在线 | 国产女同在线观看 | 亚欧洲精品视频在线观看 | 欧美天天影院 | 中文字幕丝袜诱惑 | 亚洲精品乱码久久久久久国产主播 | 国产精品一品二区三区的使用体验 | 深喉口爆一区二区三区 | 欧美射射| 成人午夜一区 | 日韩少妇高潮抽搐 | 娇妻第一次尝试交换的后果 | 亚洲天堂网在线视频 | 91精品啪| 少妇中文字幕 | 91性视频| 亚洲欧美日韩精品永久在线 | 观看av免费 | 国产1区2区3区4区 | 成人做受黄大片 | 国产不卡视频在线播放 | 91精品国产综合久久精品 | 亚洲午夜精品一区二区三区他趣 | 中国黄色1级片 | 精品人人妻人人澡人人爽牛牛 | 成人午夜精品福利免费 | 国产三级伦理片 | 欧美肥老妇 | 美女扒开腿让男人操 | 黄色小视屏 | 精精国产xxxx视频在线播放 | 欧美激情videos | 天天操夜操 | 国产黄色三级网站 | 黄色三级在线播放 | 中文写幕一区二区三区免费观成熟 | 老熟妇仑乱视频一区二区 | 新超碰97 | 91看视频| 国产精品美女久久久久av超清 | 8090av| 欧美极品少妇无套实战 | 国产区欧美区日韩区 | 日韩av.com | 日本羞羞网站 | 欧美经典一区二区三区 | 中文字幕一区二区三区波野结 |