Android期末基础复习

来源:互联网 发布:奥杜尔档案馆数据圆盘 编辑:程序博客网 时间:2024/05/16 06:43
一、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、文本框<TextView/>
<TextView android:id="@+id/XXX"                                  //设置id唯一标识
          android:layout_width="match_parent"                 //宽度填满父元素
          android:layout_height="wrap_content"                //高度适应文字
          android:layout_gravity="center"                             //设置文字居中,right为右对齐,left为左对齐
          android:text="XXXXX"                                               //设置文字内容,可以使用@string/name引用string.xml中内容
          android:textSize="XXpx"                                           //设置文字大小
/>

<TextView android:id="@+id/XXX"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:drawableTop="@drawable/name"           //设置带图片的文本框,图片在文本上面,下面drawableBottom
          android:text="@string/name"        />
         
其他:
设置链接: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、编辑框<EditText/>
<EditText android:id="@+id/XXX"
          android:layout_width="200sp"
          android:layout_height="wrap_content"
          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、按钮<Button/>——包含视图组件的响应方式学习
<Button android:id="@+id/XXX"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="提交"
/>

在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、图片视图<ImageView/>
<ImageView 
          android:maxWidth="XXXpx"               //设置最大宽度
          android:maxHeight="XXXpx"              //设置最大高度
          android:adjustViewBounds="true"      //是否允许调整图片,允许
          android:scaleType="XXX"     //scaleType设置图片缩放方式
                                                               //fitStart、fitCenter、fitEnd,按比例缩放,分别置于imageView左上角、中间、右下 
                                                               //center按原图大小显示,如果超过最大边界,只显示中间部分  
                                                               //centerCrop按边框比例缩放,直到完全覆盖边框
                                                              //centerInside按图片比例缩放,直到能完全显示图片       
……
/>

5、单选按钮<RadioButton/>——使用方式基本一致
<RadioButton  android:id="@+id/XXX"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="XXX"
          android:checked="true"     //默认选项
/>
……

6、复选按钮<CheckBox/>——使用方式基本一致
<CheckBox  android:id="@+id/XXX"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="XXX"
/>
……

7、下拉列表<Spinner>
<Spinner     android:id="@+id/XXX"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:entries="@array/数组名"
/>
在res\values\arrays.xml中有如下配置:
<resource>
    <string-array name="数组名">
        <item>XXX1</item>
        <item>XXX2</item>
        ……
    </string-array>
</resource>

五、视图界面布局
  
1、线性布局——LinearLayout
最简单的布局之一,可以垂直排列,可以水平排列,垂直排列每行只有一个组件,水平排列,每列只有一个组件。
主要有两个较特殊属性:
    android:orientation="vertical"                                  //垂直布局,horizontal水平布局
    (其他布局公用)android:gravity="center"              //组件对齐方式,center全局居中,top顶部,left左部
                                                                                               //center_horizontal行居中,center_vertical列居中
                                                                                               //多种对齐方式间用'|'分隔,如top|left,左上对齐
2、表格布局——TableLayout
类似与常见的表格,通过制定行和列的形式来管理视图组件。一个<TableRow></TableRow>就是一行,在其中可设置多个组件,如果不指定<TableRow>,那么就按线性布局方式排列,一个组件占一行。
在表格布局中,列宽由该列最宽的组件决定,行高由该行最高的组件决定。

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        某个方向留白多少像素点
1 0
原创粉丝点击