Android学习笔记(一)

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值