参考农民伯伯快速入门:http://www.cnblogs.com/over140/archive/2010/09/27/1836567.html
布局:类似于HTML的CSS
1,FrameLayout
帧布局:所有元素重叠放在左上角
2,LinearLayout
线行布局,android:orientation="vertical"垂直放置元素
3,AbsolutionLayout
绝对布局:通过android:layout_x和android:layout_y指定位置
4,RelativeLayout
相对布局:这个内容很多,控制复杂不建议使用
5,TableLayout
表格布局:和TableRow搭配使用
Android四大组件:
Activity,Service,Broadcast Receiver 和 Content Provider
Activity
在android中Activity有四种基本状态:
1、Running
位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。
2、Paused
当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。
3、Stop
当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。
4、Killed
Activity被系统杀死或者跟本没启动时就是Killed状态。
Service
Service对象不能自己启动,需要通过某个Activity、Service或者其他Context对象来启动。启动的方法有两种,Context.startService和Context.bindService()。两种方式的生命周期是不同的,具体如下所示。
Context.startService方式的生命周期:
启动时,startService –> onCreate() –> onStart()
停止时,stopService –> onDestroy()
Context.bindService方式的生命周期:
绑定时,bindService -> onCreate() –> onBind()
解绑定时,unbindService –>onUnbind() –> onDestory()
Broadcast Receiver参考资料:http://android.yaohuiji.com/archives/727
Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么Broadcast Receiver组件就提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。
Content Provider 参考资料:http://android.yaohuiji.com/archives/725
在Android中,应用程序彼此之间相互独立的,它们都运行在自己独立的虚拟机中。Content Provider 提供了程序之间共享数据的方法,一个程序可以使用Content Provider 定义一个URI,提供统一的操作接口,其他程序可以通过此URI访问指定的数据,进行数据的增、删、改、查。
常用代码块
1 在当前Activity中启动另外一个Activity
startActivity(new Intent(this,目标Activity.class));
2 从当前ContentView从查找控件
(Button)findViewById(R.id.btnAbout)
R.id.btnAbout指控件id。
3 获取屏幕宽高
DisplayMetrics dm = new DisplayMetrics();
//获取窗口属性
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;//320
int screenHeight = dm.heightPixels;//480
4 无标题栏、全屏
//无标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
注意在setContentView()之前调用,否则无效。
5 注册activity
所有用到的Activity都必须在AndroidManifest.xml中注册,否则会报空指针错误。如:<activity android:name="com.common.TestView"> ,注意是包名+类名。
6 . Menu
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
menu.add(0,MENU_ABOUT,0,R.string).setIcon();
return true;
};
public boolean onOptionsItemSelected(MenuItem item){
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case
}
return true;
};e
7.Dialog
// 定义对话框对象
Dialog dialog = new AlertDialog.Builder(this)
.setIcon(android.R.drawable.btn_star).setTitle("喜好调查")
.setMessage("你喜欢看爱德华.诺顿Edward Norton的电影吗?")
.setNegativeButton("不喜欢", ocl).setNeutralButton("一般般", ocl)
.setPositiveButton("很喜欢", ocl).create();
//显示对话框
dialog.show();
小技巧
1 使用系统的图标
例如调用系统打电话的图标:
<ImageView android:src="@android:drawable/ic_menu_call"
图标名称和效果(Android1.5和1.6):
http://since2006.com/android/1.5-drawables.php
http://since2006.com/android/1.6-drawables.php
2 让控件透明,如ImageButton
设置android:background="@null"
3 在layout中直接指定onclick方法
不用手动绑定,在layout中设置android:onClick=”methodName”,methodName为对应Activity中的方法,如下格式:public void methodName(View view){} (适应1.6以上版本)
4 进入界面就显示/隐藏软键盘
在AndroidManifest.xml中设置activity的
android:windowSoftInputMode="stateHidden"
5 界面可视化布局工具
系统提供可视化布局并不好用,这里推荐一款,布局完后点生成代码即可:
DroidDraw:http://www.droiddraw.org/
6 在Eclipse中看Android的源码
将源代码拷贝至android-sdk-windows/platforms/android-4/sources下即可。注意源码版本对应android-4文件夹,这里指Android1.6的源码。
7 ctrl+F11 F12 横/竖屏切换