1.前言:
本篇文章专门针对0基础对Java安卓APP开发入门级别的小白做的知识教程,部分语言可能不够严谨,望各路大牛指点,谢谢!
本篇文章将不会着重于JavaSE,没学的小伙伴个人建议先学习JavaSE(基础版),再来学习安卓开发
本篇文章默认配置好了安卓开发环境,将不再进行配置教程(后期会考虑出一集)
2.初步认识安卓开发:
在安卓开发中,主要接触到的文件只有.java和.xml文件:
.xml : 资源文件,页面布局还有颜色,字符串,动画等的资源 都是由.xml修饰
.java : 定义一个程序行为的文件 ,什么样的功能由.java文件决定
其中,布局分Fragment和Activity :
Activity : 表示一个活动 ,可负责管理用户界面
Fragment:表示一个碎片,一种可以嵌入在Activity中的UI组件
考虑到初学者理解起来有点困难,这里拿微信举个例子:
如下左图为微信的主界面,下右图为结构草图:
简单来讲,Activity是你整个屏幕,Fragment可以包含在Acitivity内,你还可以设置几个按钮来更换界面内的Fragment。
可能读者可能会好奇:为什么会有Fragment而不是所有都用Activity代替呢?
答:事实上,从优化的角度来说,所有都用Activity可能会导致手机内存,CPU消耗增加,而用Fragment切换是高效的,另外,切换Activity会导致手机每次切换页面都需要加载,对用户的体验感来说也是不好的。
3.XML实战:
如图是一个活动(Activity)的布局文件(Layout文件):
其中<LinearLayout ...></LinearLayout>是修饰一个线性布局,意思就是在水平或者垂直方向进行顺序排列 除此之外还有:相对布局(RelativeLayout) ,框架布局(FrameLayout) ... 在本篇将使用线性布局,因为它最简单也最好用。
在XML文件中最外层的布局将需要有 xmlns:android="..." 进行修饰,读者可以理解为import ... ,如果一个程序不导入任何库,那么这个程序就运行不起来,在XML布局文件中也是如此。
其中最常见的导入的url:
- xmlns:android="http://schemas.android.com/apk/res/android“:里面包含对于所有修饰词的定义,如:布局宽度(android:layout_width)等等
- xmlns:tools="http://schemas.android.com/tools" :里面包含对于工具类的修饰词的定义,如:忽略错误或警告(tools:ignore)等等
- xmlns:app="http://schemas.android.com/apk/res-auto" :对于用于扩展Android提供的布局和资源,可以引用/res/values/目录下的所有资源
对于LinearLayout以及部分布局来说,还需要修饰其宽度(layout_width)和高度(layout_height) :
可以看到这两个修饰词在提示中都显示(required)需要的:
这里讲解一下等号右边的值:
- match_parent : 自动填充父级视图
- wrap_content : 根据被修饰物的大小来填充
如下左图使用match_parent修饰的按钮,右图是wrap_content:
除此之外对于一个Layout的修饰词还有很多,这里列举几个:
- android:gravity : 重心 ; 常见的值有:中心(center) ,底部(bottom) ,水平中心(center_horizontal) ,垂直中心(center_vertical) ...
- android:orientation:布局方向 ; 常见的值有:水平(horizontal) , 垂直(vertical)
- android:layout_margin :布局外边缘 ;常见的值是xx像素如: 10sp , 10dp .... 具体大小看自己需求
- android:layout_padding:布局内边缘;同上
- android:id :将这个页面设置一个变量;值为自己命名,个人建议使用有含义的单词,不然到后期开发个大需求的app自己都找不到自己要写啥了
在布局中,常常会用到各种不同的组件:
- <Button... /> :按钮 ; (修饰词)->... ,下同
- <TextView ... /> : 文本框 ;
- <EditText ... /> :输入框 ;
- < ImageView ... /> 图片 ;