1、LinearLayout线性布局
LinearLayout容器中的组件一个挨一个排列,通过Android:orientation属性控制各个组件是横向还是纵向排列。
2、FrameLayout帧布局
FrameLayout直接继承ViewGroup组件。帧布局为每一个加入其中的组件创建一个空白区域,每个子组件占据一帧,这些帧根据gravity属性执行自动对齐。
3、RelativeLayout相对布局
为了控制该布局内容的各个组件分布,RelativeLayout提供的一个内部类RelativeLayout.LayoutParams。
4、TableLayout表格布局
TableLayout继承自LinearLayout,本质上仍然是线性布局管理器.表格布局采用行、列的形式来管理UI组件,并不需要明确的声明包含多少行,多少列,而是通过添加TableRow、其它组件来控制表格的行数和列数。每向TableLayout中添加一个TableRow就代表一行,每向TableRow中添加一个组件就代表一列。
5、网格布局GridLayout
GridLayout是Android4.0增加的网格布局控件,与TableLayout有些相似,它把整个容器划分为rows*columns个网格,每个网格可以放置一个组件。比TableLayout性能好。
6、AbsoluteLayout绝对布局
AbsoluteLayout是由开发人员通过X、Y坐标来控制组件的位置。每个组件都可以指定layout_x;layout_y;
Android四大组件
1、Activity;是指与用户交互的界面。一个Activity通常就是一个单独的屏幕(窗口)。Activity之间通过Intent传递数据。
2、service;service在后台运行,没有图形界面。
service的启动方式有两种:startService,是由其它组件调用startService方式启动的,当服务处于started状态时,与其它组件的生命周期没有联系了,即使其它组件销毁了服务依然处在运行的状态,因此,在服务完成任务后需要调用stopService()或者sotpself()方法停止。 bindService,调用者与服务绑定在一起,一旦调用者销毁,服务也跟着销毁。
service需要在AndroidManifest中声明,使用<service android:name=".MyService"></service>
3、BroadcastReceiver;能够更容易的实现Android组件间的通信。同时,广播的执行是异步的,并且不要求执行视图可见。 BroadcastReceiver分静态注册和动态注册两种注册方式。静态注册属于常驻型,也就是说,在应用关闭后如果广播信息传来,接受者也会被系统自动运行。而动态注册是随着程序的生命周期绑定的。
使用它对你应用外部的事件经行过滤,只对感兴趣的外部事件(如当电话呼入、数据网络可用时)接收时做出响应。广播接收器也没有用户界面。它们可以启动一个activity、serice或NotificationManager来响应它们收到的信息.广播接收者的注册方式有两种,一种是静态注册,在AndroidManifast中使用
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="test"/>
</intent-filter>
</receiver>
另一种是动态注册,
MyBroadcaetReceiver broad=new MyBroadcastReceiver();
IntentFilter intentfilter=new IntentFilter();
intentfilter.addAction(ACTION);
registerReceiver(broad);
4、ContentProvider; contentProvider使一个应用程序的指定数据集提供给其它应用程序。其它应用程序可以用ContentResolver类从该内容中获取数据。只有需要在多个应用程序之间共享的数据时才需要ContentProvider. 主要用于不同应用之间的的数据共享功能。ContentProvider将数据发布出来,通过ContentResolver(数据调用者)对象调用ContentOrovider的增删改查。
ContentProvider用于保存或获取数据,并使其对所有应用程序可见。这是不同应用程序之间数据共享的唯一方式。
ContentProvider使用URL来标识数据集,这里的URL是唯一的,以content://作为前缀,表示该数据由ContentProvider来管理。
Android的数据存储方式
1、SharedPreferences方式
SharedPreferences用来存储一些简单的数据,以键值对的方式存储数据。
2、数据库SQLite
SQLite是Android所带的一个标准的数据库,支持SQL语句,是一个轻量级的嵌入式数据库。
3、网络存储
以POST请求方式把数据发送到某一个地址上
4、文件存储
在Android中,提供了openFileInput和openFileOutput方法读取设备上的文件,
FileOutputStream fos=openFileOutput("fileName",Contex.MODE_PRIVATE);
FileInputStream fls=openFileInput("fileName");
当FileOutputStream指定的文件不存在时,android会自动创建一个。默认情况下会覆盖原来的文件。
5、ContentProvider
Android内部唯一一个可以实现数据共享的方法。一个ContentProvider类实现了一组标准的方法接口,从而能让其它应用读取。外部的程序通过ContentResolute接口访问ContentProivder提供的数据。
Android自定义View的设计和使用
1、首先继承View类
2、必须实现其中的一个构造方法,一般都是实现两个;
3、重写onDraw(canvas)方法进行绘制,画线,画圆,画矩形等;
4、重写onMesure(),调整大小,默认是全屏;
5、如需样式在xml中布置,自定义属性 。