Android期末基础复习
16lz
2021-01-23
一、Android体系结构 1、应用程序层 2、应用程序框架层 3、系统运行库层 4、Linux核心层
二、Android项目结构 1、目录 src:存放Java源程序,可以有多个包和类,Activity子类就是在这个目录下实现的 bin:存放编译后的Java类文件、相关资源文件,以及打包后得到的.apk安装文件 res:存放相关资源文件如图片、布局文件、数据文件等,其中: layout:存放界面布局文件 drawable-XXX:存放@图片动画资源 values:存放常量、字符串、尺寸、样式 gen:存放系统自动生成的Java文件,包含了多个内部类,对应drawable、layout、values等资源文件,在Activity子类中可通 过findViewById(R.id.XXX)形式获取组件 assets:存放相关辅助文件 2、文件 AndroidManifest.xml:Android应用程序最基本最重要的全局配置文件,它保存应用程序中的Activity、Intent、Service等组件,以及应用程序权限声明等信息。
三、Activity生命周期 1、Activity是什么? Acticity是Android系统API的一个类,用于提供系统与用户交互的机制。Android程序中凡是涉及到需要与用户交互的部分,都要创建一个类,继承自Activity类,通常一个Activity子类对应一个用户视图。 2、Activity状态 started:Activity启动,入栈,但界面未显示 running:界面显示,获取用户输入焦点 paused:界面被遮挡,但仍可见,失去用户输入焦点 stopped:界面被其他Activity界面覆盖,不可见,但仍存活(可通过onRestart()方法重新显示) exited:Activity出栈,停止运行 3、Activity生命周期方法 onCreate():Activity启动时调用,进入started状态 onStart():界面显示时调用,进入running状态 onResume():获取用书输入焦点,属于running状态 onPause():界面被遮挡时调用,进入paused状态 onStop():界面被覆盖时调用,进入stopped状态 onRestart():Activity从stopped状态中恢复成running状态时调用,使界面重新显示 onDestory():Activity停止运行被释放时调用,进入exited状态
四、Android组件知识点
1、文本框
其他: 设置链接:android:autoLink="web" 设置颜色:android:textColor="XXX"
Activity类中获取文本框: public void XXXActivity extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml) TextView tv = (TextView)findViewById(R.id.XXX); //获取文本框对象 String getViewContent = tv.getText().toString(); //获取文本框内容 tv.setText("java程序设置文本框内容"); //设置文本框内容 } }
2、编辑框 android:hint="XXXX" //设置编辑框中的提示文字 android:inputType="Integer" //设置编辑框中的文本类型 />
Activity类中获取编辑框: public void XXXActivity extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml)
EditView ev = (EditView )findViewById(R.id.XXX); //获取编辑框对象 String getViewContent = ev.getText().toString(); //获取编辑框内容 tv.setText("java程序设置编辑框内容"); //设置编辑框内容 } }
3、按钮——包含视图组件的响应方式学习
在Activity中触发Button事件(第一种方式:通过监听器):
public void XXXActivity extends Activity{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml)
Button button = (Button)findViewById(R.id.XXX); button.setOnclickListener(new View.OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(); //创建Intent对象 //设置跳转的当前Activity和跳转到的Activity intent.setClass(当前Activity类名.this, 跳转到的Activity类名.class); intent.putExtra("数据名", String对象); //设置传输的数据 startActivity(intent); //跳转 } }); } }
数据到另一个Activity接收并显示: TextView result=(TextView) findViewById(R.id.XXX); //显示传过来数据的文本框对象
result.setText(this.getIntent().getStringExtra("数据名")); //设置文本框内容为:前一个Activity传输过来的String
第二种方式:通过回调方法实现(不用设置监听器): 在button组件中,设置 android:onClick="方法名"属性 public XXXActivity extends Activity{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.XXX); } public void 方法名(View v){ 具体处理代码,参考监听器方式 } } 4、图片视图 android:scaleType="XXX" //scaleType设置图片缩放方式 //fitStart、fitCenter、fitEnd,按比例缩放,分别置于imageView左上角、中间、右下 //center按原图大小显示,如果超过最大边界,只显示中间部分 //centerCrop按边框比例缩放,直到完全覆盖边框 //centerInside按图片比例缩放,直到能完全显示图片 …… />
5、单选按钮 ——使用方式基本一致 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="XXX" android:checked="true" //默认选项 /> ……
6、复选按钮 ——使用方式基本一致 android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="XXX" /> ……
7、下拉列表 android:entries="@array/数组名" /> 在res\values\arrays.xml中有如下配置: - XXX1
- XXX2
……
五、视图界面布局 1、线性布局——LinearLayout 最简单的布局之一,可以垂直排列,可以水平排列,垂直排列每行只有一个组件,水平排列,每列只有一个组件。 主要有两个较特殊属性: android:orientation="vertical" //垂直布局,horizontal水平布局 (其他布局公用)android:gravity="center" //组件对齐方式,center全局居中,top顶部,left左部 //center_horizontal行居中,center_vertical列居中 //多种对齐方式间用'|'分隔,如top|left,左上对齐 2、表格布局——TableLayout 类似与常见的表格,通过制定行和列的形式来管理视图组件。一个 就是一行,在其中可设置多个组件,如果不指定,那么就按线性布局方式排列,一个组件占一行。 在表格布局中,列宽由该列最宽的组件决定,行高由该行最高的组件决定。
3、帧布局——FrameLayout 每个组件都从屏幕左上角开始布局,所有组件叠加在一起进行显示,默认后设置的组件会覆盖前组件相应位置。
4、相对布局——RelativeLayout 按照组件之间的相对位置进行布局,是实际布局中最常用的使用方式之一。相对布局灵活性大,属性多,属性间产生冲突的可能性也比较大,但 能最大程度的保证在各种屏幕类型的移动设备上可以显示界面布局。
主要有三类特殊属性: 1、相对布局中取值为true或false的属性: android:layout_centerHorizoncal 行居中 android:layout_centerVertical 列居中 android:layout_centerInParent 全局居中 android:layout_alignParentLeft /Right/Bottom/Top与父组件某一端对齐 2、组件之间的位置关系设置,取值为其他组件的ID android:layout_toRightOf="@id/XXX" 设置在XXX的右侧 android:layout_toLeftOf="" 设置在XXX的左侧 android:layout_above 设置在XXX的上面 android:layout_below 设置在XXX的右侧 android:layout_alignLeft /Right/Bottom/Top 某个方向边界对齐XXX 3、取值为像素值的属性 android:layout_marginLegt /Right/Bottom/Top 某个方向留白多少像素点
二、Android项目结构 1、目录 src:存放Java源程序,可以有多个包和类,Activity子类就是在这个目录下实现的 bin:存放编译后的Java类文件、相关资源文件,以及打包后得到的.apk安装文件 res:存放相关资源文件如图片、布局文件、数据文件等,其中: layout:存放界面布局文件 drawable-XXX:存放@图片动画资源 values:存放常量、字符串、尺寸、样式 gen:存放系统自动生成的Java文件,包含了多个内部类,对应drawable、layout、values等资源文件,在Activity子类中可通 过findViewById(R.id.XXX)形式获取组件 assets:存放相关辅助文件 2、文件 AndroidManifest.xml:Android应用程序最基本最重要的全局配置文件,它保存应用程序中的Activity、Intent、Service等组件,以及应用程序权限声明等信息。
三、Activity生命周期 1、Activity是什么? Acticity是Android系统API的一个类,用于提供系统与用户交互的机制。Android程序中凡是涉及到需要与用户交互的部分,都要创建一个类,继承自Activity类,通常一个Activity子类对应一个用户视图。 2、Activity状态 started:Activity启动,入栈,但界面未显示 running:界面显示,获取用户输入焦点 paused:界面被遮挡,但仍可见,失去用户输入焦点 stopped:界面被其他Activity界面覆盖,不可见,但仍存活(可通过onRestart()方法重新显示) exited:Activity出栈,停止运行 3、Activity生命周期方法 onCreate():Activity启动时调用,进入started状态 onStart():界面显示时调用,进入running状态 onResume():获取用书输入焦点,属于running状态 onPause():界面被遮挡时调用,进入paused状态 onStop():界面被覆盖时调用,进入stopped状态 onRestart():Activity从stopped状态中恢复成running状态时调用,使界面重新显示 onDestory():Activity停止运行被释放时调用,进入exited状态
四、Android组件知识点
1、文本框
Activity类中获取文本框: public void XXXActivity extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml) TextView tv = (TextView)findViewById(R.id.XXX); //获取文本框对象 String getViewContent = tv.getText().toString(); //获取文本框内容 tv.setText("java程序设置文本框内容"); //设置文本框内容 } }
2、编辑框
Activity类中获取编辑框: public void XXXActivity extends Activity{ public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml)
EditView ev = (EditView )findViewById(R.id.XXX); //获取编辑框对象 String getViewContent = ev.getText().toString(); //获取编辑框内容 tv.setText("java程序设置编辑框内容"); //设置编辑框内容 } }
3、按钮——包含视图组件的响应方式学习
在Activity中触发Button事件(第一种方式:通过监听器):
public void XXXActivity extends Activity{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView("R.layout.XXXX"); //引用视图组件(XXX.xml)
Button button = (Button)findViewById(R.id.XXX); button.setOnclickListener(new View.OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(); //创建Intent对象 //设置跳转的当前Activity和跳转到的Activity intent.setClass(当前Activity类名.this, 跳转到的Activity类名.class); intent.putExtra("数据名", String对象); //设置传输的数据 startActivity(intent); //跳转 } }); } }
数据到另一个Activity接收并显示: TextView result=(TextView) findViewById(R.id.XXX); //显示传过来数据的文本框对象
result.setText(this.getIntent().getStringExtra("数据名")); //设置文本框内容为:前一个Activity传输过来的String
第二种方式:通过回调方法实现(不用设置监听器): 在button组件中,设置 android:onClick="方法名"属性 public XXXActivity extends Activity{ protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.XXX); } public void 方法名(View v){ 具体处理代码,参考监听器方式 } } 4、图片视图
5、单选按钮
6、复选按钮
7、下拉列表
五、视图界面布局 1、线性布局——LinearLayout 最简单的布局之一,可以垂直排列,可以水平排列,垂直排列每行只有一个组件,水平排列,每列只有一个组件。 主要有两个较特殊属性: android:orientation="vertical" //垂直布局,horizontal水平布局 (其他布局公用)android:gravity="center" //组件对齐方式,center全局居中,top顶部,left左部 //center_horizontal行居中,center_vertical列居中 //多种对齐方式间用'|'分隔,如top|left,左上对齐 2、表格布局——TableLayout 类似与常见的表格,通过制定行和列的形式来管理视图组件。一个
3、帧布局——FrameLayout 每个组件都从屏幕左上角开始布局,所有组件叠加在一起进行显示,默认后设置的组件会覆盖前组件相应位置。
4、相对布局——RelativeLayout 按照组件之间的相对位置进行布局,是实际布局中最常用的使用方式之一。相对布局灵活性大,属性多,属性间产生冲突的可能性也比较大,但 能最大程度的保证在各种屏幕类型的移动设备上可以显示界面布局。
主要有三类特殊属性: 1、相对布局中取值为true或false的属性: android:layout_centerHorizoncal 行居中 android:layout_centerVertical 列居中 android:layout_centerInParent 全局居中 android:layout_alignParentLeft /Right/Bottom/Top与父组件某一端对齐 2、组件之间的位置关系设置,取值为其他组件的ID android:layout_toRightOf="@id/XXX" 设置在XXX的右侧 android:layout_toLeftOf="" 设置在XXX的左侧 android:layout_above 设置在XXX的上面 android:layout_below 设置在XXX的右侧 android:layout_alignLeft /Right/Bottom/Top 某个方向边界对齐XXX 3、取值为像素值的属性 android:layout_marginLegt /Right/Bottom/Top 某个方向留白多少像素点
更多相关文章
- Android 中使用代码动态网格布局
- Android四大组件之Content Provider
- Android 横向布局中间填满
- Android Jetpack系列之Lifecycle组件(一篇文章掌握Lifecycle)
- Android性能优化之布局优化
- Android中动态初始化布局参数以及ConstraintLayout使用中遇到的
- Android之布局属性重点