【Android 開(kāi)發(fā)-kotlin】約束布局demo

好久沒(méi)有寫(xiě)簡(jiǎn)書(shū)了,最近比較有空融柬,覺(jué)得還是有必要整理一下學(xué)的知識(shí)颊咬。


運(yùn)行效果

內(nèi)容簡(jiǎn)概

一务甥、Manifest配置程序 組件/名稱(chēng)/圖標(biāo)/樣式
二、Activity顯示界面
三喳篇、layout.xml對(duì)界面布局
四缓呛、Constraint添加約束
五、界面跳轉(zhuǎn)
六杭隙、適配屏幕方向
七哟绊、簡(jiǎn)單動(dòng)畫(huà)
八、多語(yǔ)言支持

具體內(nèi)容

一、Manifest配置程序 組件/名稱(chēng)/圖標(biāo)/樣式

首先創(chuàng)建一個(gè)新工程票髓,選擇Empty activity攀涵,語(yǔ)言使用kolin。創(chuàng)建完畢后洽沟,工程已經(jīng)有了基礎(chǔ)的配置以故,這些配置信息一般都放在Manifest文件里,需要更改應(yīng)用圖標(biāo)裆操、應(yīng)用名稱(chēng)等就在里面配置怒详。


圖標(biāo)文件放在res/mipmap文件下,里面有原始圖標(biāo)踪区,要替換時(shí)需要與原始圖標(biāo)大小一致昆烁。不同大小的圖標(biāo)適配不同的設(shè)備(電腦、iPad缎岗、手機(jī)等)静尼。



我這里用72*72的圖標(biāo),將圖片復(fù)制粘貼到mipmap目錄传泊,然后在彈出的窗口選擇對(duì)應(yīng)的尺寸(我的是hdpi)即可鼠渺。



在res/values/strings目錄下配置應(yīng)用名稱(chēng)。

或者從AndroidManifest文件的label標(biāo)簽眷细,按ctrl鍵進(jìn)入

二拦盹、Activity顯示界面

Manifest文件中的activity標(biāo)簽管理主界面,下圖中只有MainActivity一個(gè)主界面溪椎,按Ctrl鍵選中MainActivity跳轉(zhuǎn)到對(duì)應(yīng)類(lèi)普舆。


MainActivity和對(duì)應(yīng)xml文件都可以管理主界面,二者用setContentView(R.layout.activity_main)關(guān)聯(lián)池磁。其中MainActivity主要負(fù)責(zé)管理交互,activity_main.xml主要負(fù)責(zé)具體布局楷兽。

三地熄、layout.xml對(duì)界面布局

將一般圖片放在drawable目錄下,在activity_main.xml布局中拖動(dòng)一個(gè)ImageView到模擬界面中芯杀,在右側(cè)可以設(shè)置圖片大小等配置端考。


四、Constraint添加約束

在界面中還要添加對(duì)應(yīng)的約束揭厚,即告訴系統(tǒng)該控件對(duì)應(yīng)的位置却特。添加約束相當(dāng)于設(shè)置xy坐標(biāo)。在界面中操作就是點(diǎn)擊控件筛圆,拖動(dòng)四周的圓點(diǎn)到界面的邊緣裂明,若拖動(dòng)效果不滿(mǎn)意,可以在右側(cè)輸入具體的值細(xì)調(diào)太援。右側(cè)的設(shè)置也可以通過(guò)文字代碼形式設(shè)置闽晦。


如果直接在text標(biāo)簽寫(xiě)上內(nèi)容扳碍,就會(huì)出現(xiàn)警告,因?yàn)檫@是一個(gè)硬鏈接仙蛉,通俗講就是寫(xiě)死了笋敞,改起來(lái)很麻煩。



所以通常一些文本內(nèi)容都會(huì)在string.xml文件中配置對(duì)應(yīng)的軟連接荠瘪。配置的方法有兩種夯巷,一種是直接在string.xml寫(xiě),一種是點(diǎn)擊activity界面右邊的設(shè)置條哀墓。



比如這里我要更改button的文字趁餐,點(diǎn)擊右側(cè)text的設(shè)置條,在彈出的窗口點(diǎn)擊加號(hào)麸祷,選擇string value澎怒,最后填寫(xiě)名稱(chēng)和值即可。


五阶牍、界面跳轉(zhuǎn)

要使點(diǎn)擊按鈕時(shí)觸發(fā)一些事件喷面,就需要監(jiān)聽(tīng)按鈕。首先給控件加上id走孽,然后設(shè)置監(jiān)聽(tīng)事件惧辈。

        // 監(jiān)聽(tīng)按鈕
        LoginButton.setOnClickListener {
            // 添加旋轉(zhuǎn)動(dòng)畫(huà),動(dòng)畫(huà)結(jié)束后再跳轉(zhuǎn)到下一個(gè)界面
        }

實(shí)現(xiàn)界面跳轉(zhuǎn)先要準(zhǔn)備一個(gè)新的界面磕瓷,創(chuàng)建一個(gè)空的activity盒齿。

然后在MainActivity中配置

 // 界面跳轉(zhuǎn)
 startActivity(Intent(this,DetailActivity::class.java))

另外,我們還需要從跳轉(zhuǎn)界面返回主界面困食,在Manifest文件中設(shè)置DetailActivity界面的父界面边翁。

        <activity android:name=".DetailActivity"
            android:parentActivityName=".MainActivity">
        </activity>

六、適配屏幕方向

如果需要橫屏硕盹,則配置一個(gè)資源路徑符匾,在res目錄下添加一個(gè)資源路徑。



添加后轉(zhuǎn)到project模式瘩例,在layout-land目錄下添加需要橫屏的界面xml文件(我這里添加activity_detail.xml)


然后在Manifest文件設(shè)置橫屏啊胶,screenOrientation=landscape,默認(rèn)是豎屏垛贤。

       <activity android:name=".DetailActivity"
            android:parentActivityName=".MainActivity"
            android:screenOrientation="landscape">
        </activity>

此時(shí)跳轉(zhuǎn)界面后就是橫屏了焰坪,這種常見(jiàn)于橫屏手游中。

七聘惦、簡(jiǎn)單動(dòng)畫(huà)

這里為了簡(jiǎn)化代碼某饰,新建一個(gè)MyAnimatorListener類(lèi)。

然后在MainActivity中配置

// 監(jiān)聽(tīng)按鈕
        LoginButton.setOnClickListener {
            // 添加旋轉(zhuǎn)動(dòng)畫(huà),動(dòng)畫(huà)結(jié)束后再跳轉(zhuǎn)到下一個(gè)界面
            ObjectAnimator.ofFloat(mHeader,"rotation",0f,360f).apply { this
                duration=100
                repeatCount=6
                start()
                addListener(object : MyAnimatorListener(){
                    override fun onAnimationEnd(p0: Animator?) {
                        // 界面跳轉(zhuǎn)
                        startActivity(Intent(this,DetailActivity::class.java))
                    }
                })
            }
        }

八露乏、多語(yǔ)言支持

打開(kāi)open edit


點(diǎn)擊地球圖標(biāo)碧浊,選擇需要的語(yǔ)言,我這里選擇English



選擇語(yǔ)言后瘟仿,在新增一欄填寫(xiě)對(duì)應(yīng)的語(yǔ)言翻譯



項(xiàng)目運(yùn)行時(shí)會(huì)根據(jù)手機(jī)設(shè)置的語(yǔ)言顯示不同的文字箱锐。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市劳较,隨后出現(xiàn)的幾起案子驹止,更是在濱河造成了極大的恐慌,老刑警劉巖观蜗,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臊恋,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡墓捻,警方通過(guò)查閱死者的電腦和手機(jī)抖仅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砖第,“玉大人撤卢,你說(shuō)我怎么就攤上這事∥嗉妫” “怎么了放吩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羽杰。 經(jīng)常有香客問(wèn)我渡紫,道長(zhǎng),這世上最難降的妖魔是什么考赛? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任惕澎,我火速辦了婚禮,結(jié)果婚禮上颜骤,老公的妹妹穿的比我還像新娘唧喉。我一直安慰自己,他們只是感情好复哆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布欣喧。 她就那樣靜靜地躺著腌零,像睡著了一般梯找。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上益涧,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天锈锤,我揣著相機(jī)與錄音,去河邊找鬼。 笑死久免,一個(gè)胖子當(dāng)著我的面吹牛浅辙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阎姥,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼记舆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了呼巴?” 一聲冷哼從身側(cè)響起泽腮,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎衣赶,沒(méi)想到半個(gè)月后诊赊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡府瞄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年碧磅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遵馆。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鲸郊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出团搞,到底是詐尸還是另有隱情严望,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布逻恐,位于F島的核電站像吻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏复隆。R本人自食惡果不足惜拨匆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望挽拂。 院中可真熱鬧惭每,春花似錦、人聲如沸亏栈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绒北。三九已至黎侈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闷游,已是汗流浹背峻汉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工贴汪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人休吠。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓扳埂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親瘤礁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阳懂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355