AndroidStudio⼊门基础(⼀)——基础布局
写在前⾯:
上学期学习了Android,从⼀开始的什么都不懂到后来成功做出⼀个课程设计作品,回忆起来⼀路还是充满坎坷和⾟酸泪的啊。
遗忘是可怕的,为了防⽌以后把好不容易学到的东西忘得⼀⼲⼆净,我打算写⼀系列的AndroidStudio教程记录⼀些有⽤的知识点,当然,我会从最基础的地⽅写起,希望可以帮助到⼀些初学者~
最后,如果时间和精⼒允许的情况下,我会⼀步步的还原我的课程设(≧∀≦)ゞ
⽬录
1.认识⽬录
以FirstActivity为例⼦,我们需要掌握的⽂件有:
manifest
java
drawable
layout
values
①manifest⽂件夹⾥⾯只有⼀个l⽂件,在这个⽂件⾥,我们是对整个app进⾏⼀些设置,例如app的logo,app⼀进去的启动页⾯,app的名字...
②java⽂件夹⾥⾯是.java⽂件,负责整个app的逻辑处理,是完成整个app的核⼼所在。java⽂件真的超级powerful,后续会慢慢⽤例⼦体现,现在说⼀⼤堆显得有点空洞。
TIPS:初学者⼀般Java⽂件建⽴好了之后,不会随便移动它的位置。
③drawable⽂件夹⾥⾯放app需要⽤到的图⽚
④layout⽂件夹⾥⾯放的是“画页⾯”的.xml⽂件,⾥⾯的⽂件也叫布局⽂件。如果你会html&css&js的话,就很好理解了。.xml⽂件的作⽤就和.html和.css⽂件的作⽤类似,页⾯需要什么组件?怎么布局?⽤⼀些什么样式?都在.xml⾥⾯设置。但是对于⼀些复杂的样式,在.xml⽂件⾥⾯可能设置不了那么精美,就可以在java⽂件⾥⾯设置。
⑤value⽂件夹⾥⾯放了⼀些字符串,颜⾊等常量,例如:
//l
<resources>
<color name="colorPrimary">#3F51B5</color>
</resources>
//l
<Button
android:background="@color/colorPrimary"
/
>
对于颜⾊#3F51B5,我给它起名字叫colorPrimary,之后我在布局⽂件中⽤这个颜⾊,就只需要喊它的名字colorPrimary就可以了。
最后总结⼀些基本思想:
layout和java⽂件夹是最重要的。如果把app⽐作⼀个⼈,layout就是⼀个⼈的脸,java就是⼀个⼈是灵魂。前者决定了这个app长什么样⼦,后者决定了这个app可以实现那么功能。
对于初学者,l和value⽂件夹的作⽤不⽤着急掌握,到了某⼀天你需要实现某个功能需要⽤到这些,你就可以真真切切的知道它的⽤处了。
2.RelativeLayout
AndroidStudio⾥⾯⽀持的布局有挺多种的,但是最最重要的是RelativeLayout(相对布局)和LinearLayout(线性布局),熟练掌握这两种布局也⾮常够⽤了,当然还有但是对于初学者,先学会了相对布局和线性布局,再去学习其他布局,就会觉得⾮常简单轻松了。还有⼀个⾮常有⽤的布局,叫RecyclerLayout,因为要结合adapter使⽤,所以对于初学者略难,这⾥就先不讲了,之后会⾮常详细的介绍它。
学习布局需要掌握的东西很简单,就是它有的属性,以及取不同属性值可以达到的效果,下⾯我就慢慢列出来。
layout_width
layout_height
这两个属性就决定了布局的宽度和⾼度,把RelativeLayout想象成⼀个相框或者⼀个容器,在这个相框⾥⾯可以装其他的组件。对于嵌套在相框⾥⾯的组件,其所在的相框就是它的⽗空间。这个相框的⼤⼩呢,就⽤上⾯这两个属性举例,取值有三种:
wrap_content 刚刚把⽂字组件包裹满的长度
match_parent 撑满整个⽗空间的长度
100px 具体的像素值
对于相对布局有⼀个地⽅要注意
相对布局⾥⾯的组件需要设置id(在同⼀个.xml⽂件⾥⾯的所有组件,其id不可以重复哦~)然后⽤layout_below设置组件的相对位置。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"
/>
<Button
android:id="@+id/button_2"
android:layout_below="@id/button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
/>
android radiogroup
</RelativeLayout>
例如上⾯这个例⼦,在RelativeLayout⾥⾯有两个按钮,第⼀个按钮的id是button_1,android:id="@+id/button_1",第⼆个按钮的id是button_2,为button_2设置了android:layout_below="@id/button_1"表⽰按钮2在按钮1的下⾯。所以效果图如下:
如果我不为按钮2设置相对向下的对象会怎样呢?也就是删掉android:layout_below="@id/button_1"。答案是按钮⼆会覆盖按钮⼀。
如果想让按钮居中怎么办?答案就是为RelativeLayout添加⼀个属性  android:gravity="center"
如果继续追问,我希望按钮⼀和按钮⼆并排在⼀起怎么办?答案是:sorry,RelativeLayout做不到啊~~
但是LinearLayout可以做到哦!
RelativeLayout还有很多其他的属性,可以⾃⼰试着玩,重要的属性就是上⾯这些,我⽤红⾊的粗体标记啦~
3.LinearLayout
线性布局要灵活⼀些,在实际应⽤上也是最最最⼴泛的。
layout_width
layout_height
和相对布局⼀样的⽤法和属性值,我就不赘述了!
区别于RelativeLayout,LinearLayout就不要求每个组件都要设置⾃⼰的id了,但是最好还是设置⼀下,这是⼀个好习惯哦。那么问题来了,我怎么设置两个组件是横着并排还是竖着并排呢??现在就隆重介绍线性布局的重要属性 orientation          取值有两种:vertical(垂直)和 horizontal(⽔平)
<LinearLayout
xmlns:android="schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<Button
android:id="@+id/button_1"
android:layout_width="200px"
android:layout_height="100px"
android:text="Button 1"
/>
<Button
android:id="@+id/button_2"
android:layout_width="200px"
android:layout_height="100px"
android:text="Button 2"
/>
<Button
android:id="@+id/button_3"
android:layout_width="200px"
android:layout_height="100px"
android:text="Button 3"
/
>
</LinearLayout>
android:orientation="horizontal" 决定了容器⾥⾯的所有组件都绝对是⽔平排列的
需要注意的就是,哪怕我的组件已经装不下了,也不会被挤到下⼀排,⽽是只显⽰⼀截,甚⾄完全不显⽰。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/button_1"
android:layout_width="200px"
android:layout_height="100px"
android:text="Button 1"
/>
<Button
android:id="@+id/button_2"
android:layout_width="200px"
android:layout_height="100px"
android:text="Button 2"
/>
</LinearLayout>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。