Activiyty:用户和应用程序交互的接口;
创建Activity的要点:
1)一个Activity就是一个类,并且这个类要继承Activity;2)需要复写onCreate方法 3)每一个Activity都需要在AndroidManifest.xml文件中进行配置 4)为Activity添加必要的控件:可以在layout中文件下进行配置;5)在FindViewByID中寻找控件进行设置。
试试数
在Activity跳转中Intent起重要作用:Component name Action Data Category Extras Flags;
ScaleType
center 图片放在中央
center_crop
center_inside
fit_center(start,end) 填满整个ImageView
fit_xy
既可以在.xml也可以在.java中设置图片属性;
android:src="";.setImageSource();图片可以在drawablez中也可以在asserts中,也可以来自各种途径;
LinearLayout 的嵌套
layout_weight属性使用要点:1)子空件并未占满父控件的空间 2)用于指定空闲空间的分配比例;
android:grivity-指定控件当中文本内容的基本位置,比如说居中,居右等
android:textSize——指定控件中字体的大小(pt)
android:background——指定控件所使用的背景色
android:padding——指定控件的内边距,也就是说控件当中的内容(dip与屏幕的像素无关)
android:singleLine——如果设置为真的话,则控件的内容在同一行当中进行显示
TableLayout:strechColumns="1"——拉升第一列;
RelativeLayout:
android:layout_above 将该控件的底部置于给定ID的控件之上
android:layout_below 将该控件的底部置于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline 将该控件的底部边缘与给定ID的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID的控件的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘与给定ID的控件的左边缘对齐
android:layout_alignRight 将该控件的底部边缘与给定ID的控件的右边缘对齐
android:layout_alignTop 将该控件的底部边缘与给定ID的控件的顶部对齐
android:layout_alignParentBottom 如果该值为true,则将该控件的地步和父控件的底部对齐
android:layout_alignParentLeft 如果该值为true,则将该控件的地步和父控件的左边对齐
android:layout_alignParentRight 如果该值为true,则将该控件的地步和父控件的右边对齐的
android:layout_alignParentTop 如果该值为true,则将该控件的地步和父控件的顶部对齐
android:layout_centerHorizontal 如果值为真,该控件将被置于水平方向的中央
android:layout_centerInParent 如果值为真,该控件将被置于父控件水平方向和水平方向的的中央
android:layout_centerVertical 如果值为真,该控件将被置于垂直方向的中央
android:layout_baseLine 对齐到基准线
android:layout_alignEnd
android:layout_alignStart
android:layout_alignParentStart
android:layout_alignParentEnd
TinmePicker:
OnTimeChangedListener:view——该对象代表着TimePicker hourOfDay:用户选择的时间
minuteOfDay:用户选择的分钟
DataPicker:不能使用监听器,可以在button上设置
AnalogClock:
android当中的进度条:
progressBar进度条的风格:垂直风格和水平风格;
Small,Large;Inverse,Small.Inverse,Large.Inverse
progressBar进度条的使用方法:SeekBar RatingBar
progressBar.isInderminate()判断垂直风格与水平风格
progressBar.incrementProgressBy(10);
SeekBar属性:max(进度条最大值)progress(当前进度)
SecsondProgress(第二进度值)
OnSeekBarChangeListener
RatingBar属性:numStars,progress(当前等级),stepSize(每前进一个代表的分数)
OnRatingBarChangeListener
Handler.PostDelayed Handler.Post(将要执行的线程马上加入消息队列)
Handler.removeCallbacks(停止线程)
Handler使用方法:将要执行的操作写在线程对象的run方法中
使用Handler更新ProgressBar:
Bundle put get:key值都是String类型;数据存储的工具;
SQLite:小型数据库;
文件下载的步骤:
创建一个HttpURLConnection对象 HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
获得一个InputStream对象
URLConn。getInputStream()
访问网络的权限
android.permission.INTERNET
根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容
1.创建一个URL对象
2.通过URL对象,创建一个HttpURLConnect对象
3.得到InputStream
4.从InputStream当中读取数据
Content Provider:1)提供为存储和获取数据提供了统一的接口
2)使用ContentProvider可以在不同的应用程序之间共享数据
3)Android为常见的一些数据提供了ContentProvider(包括音频视频,通讯录等)
ContentProvider使用表的形式来组织数据
每一个URIContentProvider都有一个URI
实现ContentProvider的过程
1.定义一个content_uri常量
2.定义一个类,继承ContentProvider
3.实现query,insert,update,delete,getType和OnCreate方法
4.在AndroidManifest.xml当中进行声明
registerReceiver(receive,filter);
unregisterReceiver(receive);
Socket:用于描述IP地址和端口,是一个通信链的句柄;
应用程序通常通过“套接字”向网络发出请求或者其他应答网络请求;
UDP:不可靠但速度快(发送的量有限)
TCP:靠谱
Service:不是一个进程也不是一个线程,适合耗时较长的工程;无可视化界面;
StartService与BinderService
解析文档的过程:
start document
start element:doc <doc>
start element:para <para>hello world!</para>
characters:hello world! </doc>
end element:para
end element:doc
end document
onCreate 在Activity对象第一次创建时调用
onstart 当Activity变得可见时调用该函数
onResume 当Activity开始准备与用户交互时调用该方法
onPause 当系统即将启动另外一个Activity之前调用该方法
onStop 当前Activity变得不可见时调用该方法
onDestroy 当前Activity被销毁之前将会调用该方法
onRestart 当一个Activity再次启动之前将会调用该方法
Resumed:Activity对象处于运行状态
Paused:另一个Activity位于前端,但是本Activity还可见
Stopped:另一个Activity位于前端,完全遮挡本Activity
创建DatePickerDialog:
1,声明一个监听器,使用匿名内部类
DatePickerDialog.OnDateSetListener onDataSetListener=new DatePickerDialog.OnDateSetListener(){
public void onDateSet(DatePicker view,int year,int month of
year,int day of month)
}
2,复写onCreateDialog(int id)方法
3,在你需要的时候调用showDialog方法
AutoCompleteTextView
1,在布局文件当中声明
2,在res/layout文件夹下新建一个布局文件,名为list_item.xml
3,AutoComplwteTextView需要使用ArrayAdapter来提供数据
创建HttpClient
创建代表请求的对象,参数是访问的服务器地址
执行请求,获取服务器发送的对象
GET方法用于从服务器取回数据,POST用于向服务器提交数据
使用Get方法向服务器提交的数据量较少,Post数据量没有限制
GET请求是将所要提交的数据附在URL之后,而Post请求是将提交的数据放置在请求的请求中;
Post有请求体get无请求体
创建ExpandableListActivity的步骤
1)在布局文件当中声明ExpandableListActivity控件:
2)在布局文件中声明Group的样式
3)在布局文件当中声明子项的样式
4)创建一个Activity,继承ExpandableListActivity
5)位group创建数据
6)为child创建数据
App Widget(桌面控件)
APPWidgetProviderInfo对象:为APP widget提供元数据,包括布局,更新频率等等数据。这个对象被定义在xml文件当中;
APPWidgetProvider:定义了APP widget的基本生命周期函数;
创建第一个APP widget的步骤:
1.定义APPWidgetProviderInfo:在res/xml文件夹当中定义一个名为example_appwidget_info.xml的文件
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/example_appwidget"
>
</appwidget-provider>
2.为app Widget设置布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android rientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/widgetTextId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="firstWidgetText"
android:background="#000000"
/>
</LinearLayout>
3.实现APPWidgetProvider:onUpdate onDeleted onEnabled onDisabled onReceive
Pending(闲置)Intent:“锦囊妙计”
创建PendingIntent方法:1.getActivity(Context context,int requestCode,Intent intent,int flags)
2.getBroadcast(Context context,int requestCode,Intent intent,int flags)
3.getService(Context context,int requestCode,Intent intent,int flags)
RemoteViews对象表示了一系列的View对象,其所表示的对象运行在另外的线程当中
接受来自APPWidget的广播:
1.在AndroidManifest.xml当中为APPWidgetProvider注册新的intent—filter;
2.使用getBroadcast()方法创建一个pendingIntent
3.为APPWidget当中的控件注册处理器
4.在onReceive方法当中接受广播消息
Animations:提供了一系列动画效果
Animations分类:TweenedAnimations(渐变):旋转,移动,渐变,伸展和淡出等等效果
TweenedAnimations分类
1.Alpha:淡入淡出
2.Scale:缩放
3.Rotate:旋转
4.Translate:移动
使用TweenedAnimatrions的步骤:
1.创建一个AnimationSet对象(set是集合的意思)
2.根据需要创建相应的Animation对象
3.根据软件动画的需求,为Animation对象设置相应的数据
4.将Animation对象添加到AnimationSet对象当中
5.使用控件对象开始执行AnimationSet
TweenedAnimations的通用属性:
1.setDuration(long durationMills)设置动画持续时间
2.setFillAfter(boolean fillAfter)
如果fillAfter的值为true,则动画执行后将停留在执行结束的状态
3.setFillBefore(boolean fillBefore)
如果fillBefore的值为true,则动画执行后将停留在执行之前的状态
4.setStartOffSet(long startOffSet)
设置动画执行之前的时间
5.setRepeatCount(int repeatCount)
设置动画重复执行的次数
Animations的第二种使用方法:
1.在res文件夹下面新建一个名为anim文件夹
2.创建xml文件,并首先加入set标签,该标签如下:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
</set>
3.在该标签中加入rotate,alpha,scale或者translate标签
4.在代码当中使用AnimationUtils当中装载xml文件,并生成Animation对象
什么是AnimationSet
1.AnimationSet是Animation的子类
2.一个AnimationSet包含了一系列的Animation
3.针对AnimationSet设置一些Animation的常见属性(如StartOffSet,duration),可以被包含在AnimationSet当中的Animation集成
Interpolator使用方法:定义了动画变化的速率,在Animation框架当中定义了以下几种Inteepolator
AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator:动画循环播放特定的次数,速率改变沿着正玄曲线
DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator:动画以均匀的速率改变
Frame-by-Frame Animations:可以创建一个Drawable序列,这些Drawable可以按照指定的时间间隔一个一个的显示
什么是LayoutAnimationController
1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果
2.每一个控件都有相同的动画效果
3。这些控件的动画效果在不同的实现显示出来
4.LayoutAnimationController可以在xml文件当中设置,也可以在代码当中设置
AnimationListener:
1.onAnimationEnd(Animation animation)
2.onAnimationRepeat(Animation animation)
3.onAnimationStart(Animation animation)
创建Activity的要点:
1)一个Activity就是一个类,并且这个类要继承Activity;2)需要复写onCreate方法 3)每一个Activity都需要在AndroidManifest.xml文件中进行配置 4)为Activity添加必要的控件:可以在layout中文件下进行配置;5)在FindViewByID中寻找控件进行设置。
试试数
在Activity跳转中Intent起重要作用:Component name Action Data Category Extras Flags;
ScaleType
center 图片放在中央
center_crop
center_inside
fit_center(start,end) 填满整个ImageView
fit_xy
既可以在.xml也可以在.java中设置图片属性;
android:src="";.setImageSource();图片可以在drawablez中也可以在asserts中,也可以来自各种途径;
LinearLayout 的嵌套
layout_weight属性使用要点:1)子空件并未占满父控件的空间 2)用于指定空闲空间的分配比例;
android:grivity-指定控件当中文本内容的基本位置,比如说居中,居右等
android:textSize——指定控件中字体的大小(pt)
android:background——指定控件所使用的背景色
android:padding——指定控件的内边距,也就是说控件当中的内容(dip与屏幕的像素无关)
android:singleLine——如果设置为真的话,则控件的内容在同一行当中进行显示
TableLayout:strechColumns="1"——拉升第一列;
RelativeLayout:
android:layout_above 将该控件的底部置于给定ID的控件之上
android:layout_below 将该控件的底部置于给定ID的控件之下
android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐
android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐
android:layout_alignBaseline 将该控件的底部边缘与给定ID的控件的baseline对齐
android:layout_alignBottom 将该控件的底部边缘与给定ID的控件的底部边缘对齐
android:layout_alignLeft 将该控件的左边缘与给定ID的控件的左边缘对齐
android:layout_alignRight 将该控件的底部边缘与给定ID的控件的右边缘对齐
android:layout_alignTop 将该控件的底部边缘与给定ID的控件的顶部对齐
android:layout_alignParentBottom 如果该值为true,则将该控件的地步和父控件的底部对齐
android:layout_alignParentLeft 如果该值为true,则将该控件的地步和父控件的左边对齐
android:layout_alignParentRight 如果该值为true,则将该控件的地步和父控件的右边对齐的
android:layout_alignParentTop 如果该值为true,则将该控件的地步和父控件的顶部对齐
android:layout_centerHorizontal 如果值为真,该控件将被置于水平方向的中央
android:layout_centerInParent 如果值为真,该控件将被置于父控件水平方向和水平方向的的中央
android:layout_centerVertical 如果值为真,该控件将被置于垂直方向的中央
android:layout_baseLine 对齐到基准线
android:layout_alignEnd
android:layout_alignStart
android:layout_alignParentStart
android:layout_alignParentEnd
TinmePicker:
OnTimeChangedListener:view——该对象代表着TimePicker hourOfDay:用户选择的时间
minuteOfDay:用户选择的分钟
DataPicker:不能使用监听器,可以在button上设置
AnalogClock:
android当中的进度条:
progressBar进度条的风格:垂直风格和水平风格;
Small,Large;Inverse,Small.Inverse,Large.Inverse
progressBar进度条的使用方法:SeekBar RatingBar
progressBar.isInderminate()判断垂直风格与水平风格
progressBar.incrementProgressBy(10);
SeekBar属性:max(进度条最大值)progress(当前进度)
SecsondProgress(第二进度值)
OnSeekBarChangeListener
RatingBar属性:numStars,progress(当前等级),stepSize(每前进一个代表的分数)
OnRatingBarChangeListener
Handler.PostDelayed Handler.Post(将要执行的线程马上加入消息队列)
Handler.removeCallbacks(停止线程)
Handler使用方法:将要执行的操作写在线程对象的run方法中
使用Handler更新ProgressBar:
Bundle put get:key值都是String类型;数据存储的工具;
SQLite:小型数据库;
文件下载的步骤:
创建一个HttpURLConnection对象 HttpURLConnection urlConn=(HttpURLConnection)url.openConnection();
获得一个InputStream对象
URLConn。getInputStream()
访问网络的权限
android.permission.INTERNET
根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容
1.创建一个URL对象
2.通过URL对象,创建一个HttpURLConnect对象
3.得到InputStream
4.从InputStream当中读取数据
Content Provider:1)提供为存储和获取数据提供了统一的接口
2)使用ContentProvider可以在不同的应用程序之间共享数据
3)Android为常见的一些数据提供了ContentProvider(包括音频视频,通讯录等)
ContentProvider使用表的形式来组织数据
每一个URIContentProvider都有一个URI
实现ContentProvider的过程
1.定义一个content_uri常量
2.定义一个类,继承ContentProvider
3.实现query,insert,update,delete,getType和OnCreate方法
4.在AndroidManifest.xml当中进行声明
registerReceiver(receive,filter);
unregisterReceiver(receive);
Socket:用于描述IP地址和端口,是一个通信链的句柄;
应用程序通常通过“套接字”向网络发出请求或者其他应答网络请求;
UDP:不可靠但速度快(发送的量有限)
TCP:靠谱
Service:不是一个进程也不是一个线程,适合耗时较长的工程;无可视化界面;
StartService与BinderService
解析文档的过程:
start document
start element:doc <doc>
start element:para <para>hello world!</para>
characters:hello world! </doc>
end element:para
end element:doc
end document
onCreate 在Activity对象第一次创建时调用
onstart 当Activity变得可见时调用该函数
onResume 当Activity开始准备与用户交互时调用该方法
onPause 当系统即将启动另外一个Activity之前调用该方法
onStop 当前Activity变得不可见时调用该方法
onDestroy 当前Activity被销毁之前将会调用该方法
onRestart 当一个Activity再次启动之前将会调用该方法
Resumed:Activity对象处于运行状态
Paused:另一个Activity位于前端,但是本Activity还可见
Stopped:另一个Activity位于前端,完全遮挡本Activity
创建DatePickerDialog:
1,声明一个监听器,使用匿名内部类
DatePickerDialog.OnDateSetListener onDataSetListener=new DatePickerDialog.OnDateSetListener(){
public void onDateSet(DatePicker view,int year,int month of
year,int day of month)
}
2,复写onCreateDialog(int id)方法
3,在你需要的时候调用showDialog方法
AutoCompleteTextView
1,在布局文件当中声明
2,在res/layout文件夹下新建一个布局文件,名为list_item.xml
3,AutoComplwteTextView需要使用ArrayAdapter来提供数据
创建HttpClient
创建代表请求的对象,参数是访问的服务器地址
执行请求,获取服务器发送的对象
GET方法用于从服务器取回数据,POST用于向服务器提交数据
使用Get方法向服务器提交的数据量较少,Post数据量没有限制
GET请求是将所要提交的数据附在URL之后,而Post请求是将提交的数据放置在请求的请求中;
Post有请求体get无请求体
创建ExpandableListActivity的步骤
1)在布局文件当中声明ExpandableListActivity控件:
2)在布局文件中声明Group的样式
3)在布局文件当中声明子项的样式
4)创建一个Activity,继承ExpandableListActivity
5)位group创建数据
6)为child创建数据
App Widget(桌面控件)
APPWidgetProviderInfo对象:为APP widget提供元数据,包括布局,更新频率等等数据。这个对象被定义在xml文件当中;
APPWidgetProvider:定义了APP widget的基本生命周期函数;
创建第一个APP widget的步骤:
1.定义APPWidgetProviderInfo:在res/xml文件夹当中定义一个名为example_appwidget_info.xml的文件
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/example_appwidget"
>
</appwidget-provider>
2.为app Widget设置布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android rientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/widgetTextId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="firstWidgetText"
android:background="#000000"
/>
</LinearLayout>
3.实现APPWidgetProvider:onUpdate onDeleted onEnabled onDisabled onReceive
Pending(闲置)Intent:“锦囊妙计”
创建PendingIntent方法:1.getActivity(Context context,int requestCode,Intent intent,int flags)
2.getBroadcast(Context context,int requestCode,Intent intent,int flags)
3.getService(Context context,int requestCode,Intent intent,int flags)
RemoteViews对象表示了一系列的View对象,其所表示的对象运行在另外的线程当中
接受来自APPWidget的广播:
1.在AndroidManifest.xml当中为APPWidgetProvider注册新的intent—filter;
2.使用getBroadcast()方法创建一个pendingIntent
3.为APPWidget当中的控件注册处理器
4.在onReceive方法当中接受广播消息
Animations:提供了一系列动画效果
Animations分类:TweenedAnimations(渐变):旋转,移动,渐变,伸展和淡出等等效果
TweenedAnimations分类
1.Alpha:淡入淡出
2.Scale:缩放
3.Rotate:旋转
4.Translate:移动
使用TweenedAnimatrions的步骤:
1.创建一个AnimationSet对象(set是集合的意思)
2.根据需要创建相应的Animation对象
3.根据软件动画的需求,为Animation对象设置相应的数据
4.将Animation对象添加到AnimationSet对象当中
5.使用控件对象开始执行AnimationSet
TweenedAnimations的通用属性:
1.setDuration(long durationMills)设置动画持续时间
2.setFillAfter(boolean fillAfter)
如果fillAfter的值为true,则动画执行后将停留在执行结束的状态
3.setFillBefore(boolean fillBefore)
如果fillBefore的值为true,则动画执行后将停留在执行之前的状态
4.setStartOffSet(long startOffSet)
设置动画执行之前的时间
5.setRepeatCount(int repeatCount)
设置动画重复执行的次数
Animations的第二种使用方法:
1.在res文件夹下面新建一个名为anim文件夹
2.创建xml文件,并首先加入set标签,该标签如下:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
</set>
3.在该标签中加入rotate,alpha,scale或者translate标签
4.在代码当中使用AnimationUtils当中装载xml文件,并生成Animation对象
什么是AnimationSet
1.AnimationSet是Animation的子类
2.一个AnimationSet包含了一系列的Animation
3.针对AnimationSet设置一些Animation的常见属性(如StartOffSet,duration),可以被包含在AnimationSet当中的Animation集成
Interpolator使用方法:定义了动画变化的速率,在Animation框架当中定义了以下几种Inteepolator
AccelerateDecelerateInterpolator:在动画开始与结束的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator:动画循环播放特定的次数,速率改变沿着正玄曲线
DecelerateInterpolator:在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator:动画以均匀的速率改变
Frame-by-Frame Animations:可以创建一个Drawable序列,这些Drawable可以按照指定的时间间隔一个一个的显示
什么是LayoutAnimationController
1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果
2.每一个控件都有相同的动画效果
3。这些控件的动画效果在不同的实现显示出来
4.LayoutAnimationController可以在xml文件当中设置,也可以在代码当中设置
AnimationListener:
1.onAnimationEnd(Animation animation)
2.onAnimationRepeat(Animation animation)
3.onAnimationStart(Animation animation)