1. Android的HelloWorld
1.src目录存放源代码;gen目录是工具帮我们生成的,不可修改;R.java里面的id为res文件夹下的文件或者xml文件中的键值对相对应的。assets文件夹也可以存放文件,这和res文件夹的不同在于,assets文件夹中的文件是不会在R.java中生成id的。
2.在Manifest.xml文件中,哪个Activity中定义有以下语句,这个Activity就是程序的主入口。
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
2. Activity的生命周期
第一次启动Activity时,调用OnCreate方法;
当Activity处于可见状态时,调用Onstart方法;
当获得用户的焦点的时候,调用OnRestart方法;
当被另一个Activity中断的时候,调用OnStop方法;
当重新唤醒Activity时,如果该Activity没有被销毁,调用OnRestart
如果已经被销毁,则依次调用OnCreate,OnStart和OnResume
启动一个Activity的时候,会依次调用OnCreate,OnStart和OnResume三个方法。如果一个Activity(设为A)被另一个Activity(设为B)完全遮挡,则会依次调用A的OnPause,B的OnCreate,OnStart和OnResume三个方法,A的OnStop方法,如果A没有被完全遮挡,则不会调用A的OnStop方法。如果手动调用finish方法或者操作系统的系统资源不够用的时候,则将会调用该A(此时A不可见)的OnDestroy方法。
如果要实现窗口风格(不是全屏的)的Activity,只需要在Manifest.xml文件中对该Activity添加如下的属性声明:
android:style/Theme.Dialog
3. Activity布局初步
android:strechColumns="1"表示在TableLayout中,如果内容不足以撑满父控件,则被拉伸的列为第2列,从0开始。
TableLayout的布局:
<TableLayout xmlns:…….> <TableRow> 各种控件声明 </TableRow> <TableRow> 各种控件声明 </TableRow> </TableLayout>
android:layout_width=”fill_parent”
android:layout_width=”match_parent”
fill_parent和match_parent的区别:
其实这两个的作用是一样的,在AndroidAPI8以后,fill_parent被弃用,取而代之的是match_parent.
android:layout_above 将该控件的底部放于给定的ID上
android:layout_below
android:layout_toLeftOf
android:layout_toRightOf
android:layout_alignBaseLine 该控件的baseline和给定控件的baseline对齐
android:layout_alignBottom/Left/Right/Top 和给定控件的边缘对齐
android:layout_alignParentBottom/Left/Right/Top=“true”和父控件边缘对齐
android:layout_centerHorizontal =”true” 水平居中
android:layout_centerInParent=”true” 水平垂直居中
android:layout_centerVertical=”true” 垂直居中
4. Android常用控件
1.RadioGroup的监听器为:setOnCheckedChangeListener,需要实现的接口为RadioGroup.OncheckedChangeListener
CheckBox的监听器也为:setOnCheckedChangeListener,但它需要实现的接口为CompoundButton.OncheckedChangeListener
2.可以使用下面一句为用户显示提示信息:
Toast.makeText(MainActivity.this, "显示的文字", Toast.LENGTH_SHORT).show();
3.android:visibility=”gone”表示当前控件不可见。
该属性有三个值:visible, invisible, gone. 这三个值分别对应View.visible, View.invisible和View.gone。其中:
visible:可见
invisible:不可见,但这个View仍然会占用在xml文件中分配的布局空间
gone:不可见,但这个View在ViewGroup中不保留位置,会重新Layout,不占用空间,后面的View会占用它的位置。
4.在<ProgressBar>标签中,进度条默认的最大值是100,也可以通过android:max属性来修改该值。例如:android:max=”200”.还可以在程序中通过progressBar.setMax(200)来设置。
5.设置窗口全屏
5.1.可以在程序中使用下面两句话设置:
requestWindowFeature(Window.FEATURE_NO_TITLE);//不显示程序的标题栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//不显示系统的标题栏
setContentView(R.layout.activity_main);
这两句话可以设置程序为全屏,但是一定要放在setContentView的前面。
5.2.也可以通过修改Manifest.xml文件来实现程序的全屏。
可以修改<application>标签或<activity>标签的属性值来实现。他们的区别是修改<application>标签后所有的Activity都会全屏,而修改<activity>后只对当前的Activity有效。
在< application >或<activity>标签(根据需要而定)添加: android:theme="@android :style/Theme.NoTitleBar.Fullscreen" 即可实现。
6. 获取屏幕的宽度和高度,使用以下代码即可
int screenWidth, screenHeight;
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();