Android学习笔记一
今日bug:
//设置内容,加载R.layout.activity_main,也就是res下的layout文件,一定要先加载控件!!!,否则会出现id找不到或者无法对内容进行修改
setContentView(R.layout.activity_main);
起初我在创建Button时进行findByViewId()导致疯狂报错,后来我将
这个位置写反,导致点击事件中的btn_one.setText()闪退,原因应该是找不到xml文件
一、Android的目录结构:
Gradle Scripts :当前应用的配置文件
manifests : 清单目录,下面的文件为对当前应用的配置文件
java :用于存放源代码以及测试类
res :
layout:布局文件
values:包含color、string、styles的配置文件
mipmap:用于存放图标,默认setHasMipMap(纹理映射技术)为true,建议只把app的启动图标放入mipmap中,其余图片资源放入drawable中
drawable:存放图片资源,默认setHasMipMap默认为false
二、activity:
一个activity可以理解成一个页面, 当activity第一次启动时执行onCreate()方法
三、常见布局类型:
match_parent、fill_parent与wrap_content的区别与作用:前两个属性强制性的使它的大小等同于父控件,父控件多大,他就多大,而wrap_content大小刚刚好包裹着内容
1、 线性布局(LinearLayout):
主要以水平或垂直方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次为从上到下。
在线性布局中,有一个非常重要的属性 orientation,用于控制控件的排列方向,该属性有两个值vertical和 horizontal(默认),其中,vertical表示线性布局垂直显示,horizontal表示线性布局水平显示。
(1)、权重:
当多个控件水平排列的时候仍留有空白区域,既浪费空间有不美观,此时利用layout_weight属性可以设置权重, 其原理Android会把布局内所有控件layout_weight属性值相加的到总值,然后利用layout_weight属性值除以总值,得到每个控件的占比,根据占比分配控件所占大小
2、 相对布局(ReletiveLayout)
相对布局是通过相对定位的方式指定控件的位置,即以其他控件或父容器为参照物,摆放控件位置。
3、 帧布局(FrameLayout)
作为Android中最简单的一种布局,该布局为每个加入其中的控件创建一个空白区域,其中所有控件默认显示在屏幕右上角,并且按照先后顺序重叠摆放(类似图层)
他的两个特殊属性为:
4、 表格布局(TableLayout)
以表格形式排列控件,通过行列划分为多个单元格,每个单元格都可以添加控件.表格布局要和TableRow配合使用,每一行都由TableRow对象组成,因此TableRow的数量决定表格的行数,表格的列则由所有TableRow中包含列最多列的决定。
5、 绝对布局(AbsoluteLayout) ------已被弃用
直接通过指定x、y坐标来控制每一个控件位置
四、常用控件
1、TextView
用于显示字符串的控件
2、EditText
继承自TextView,可以进行编辑操作,将用户信息传递给Android程序。还可以为EditText控件设置监听器,用来测试用户输入的内容是否合法。
3、Button
按钮控件,用于响应用户的一系列点击事件,使程序更加流畅和完整
点击事件的三种实现方式:
(1)、java代码中实现onClick()方法(android:onClick=”这里是被实现的方法名”)
(2)、实现匿名内部类
(3)在当前Activity中实现OnClickListener接口
4、RadioButton
这是单选按钮,需要与RadioGroup配和使用,提供多个互斥选项集。RadioGroup是单选组合框,可以容纳多个RadioGroup。并且可以利用android:orientation 控制 RadioButton排列方向。
RadioButton的监听事件:利用setOnCheckedChangeListener()监听RadioGroup空间状态
5、ImageView
继承自View,其功能是在屏幕中显示图像,并提供缩放、裁剪、着色(渲染)功能。用background来放置背景照片