Android程序入口点
在第一天中,“⑤、程序入口点。”提到了程序入口点的问题,但是比较笼统,
这里,再说一遍:
在AndroidManifest.xml文件中,有如下节点:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
所有的Activity程序都在AndroidManifest.xml文件中进行注册,故该文件是整个Android项目的核心配置文件。
在<application>节点中配置的android:icon="@drawable/ic_launcher",表示引用drawable(drawable-hdpi、drawable-ldpi、drawable-mdpi三个文件夹中导入)资源配置的图标,引入图标的名称为ic_launcher;
在<application>节点中配置的android:label="@string/app_name",表示此应用程序的标签名称从strings.xml文件中读取,内容为app_name对应的内容;当然,你还可以更改Activity的标题。
Activity就是一个活动的窗体,一个项目应用程序可以包含多个Activity。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Activity中包含上述标签,即表示:程序是默认启动这个标签所在的Activity:
指定方式大致如下:
①、android:name=".MainActivity"指定src中的.java 文件;
②、在对应的.java文件中
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);}
其中setContentView(R.layout.activity_main);,指定res-layout中的布局XML。
///
页面布局
页面布局常用的有:
LinearLayout(线性布局),通过orientation属性设置线性排列的方向是垂直(vertical)还是水平(horizontal);
RelativeLayout(相对布局),控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局。
例如:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content" //宽度匹配内容
android:layout_height="wrap_content" //高度匹配内容
android:layout_alignParentLeft="true" //贴紧父元素左边
android:layout_alignParentTop="true" //贴紧父元素上边
android:layout_marginLeft="20dp" //设置左间距20dp
android:layout_marginTop="20dp" //设置上间距20dp
android:text="@string/firstBtn" /> <Button
android:id="@+id/button2"
android:layout_width="wrap_content" //宽度匹配内容
android:layout_height="wrap_content" //高度匹配内容
android:layout_below="@+id/button1" //位置在第一个按钮的下面
android:layout_toRightOf="@+id/button1" //与第一个按钮的右边对齐
android:layout_marginTop="15dp" //设置上间距15dp
android:text="@string/secondBtn" /> <Button
android:id="@+id/button3"
android:layout_width="wrap_content" //宽度匹配内容
android:layout_height="wrap_content" //高度匹配内容
android:layout_below="@+id/button2" //位置在第二个按钮的下面
android:layout_toLeftOf="@+id/button2" //与第二个按钮的左边对齐
android:layout_marginTop="15dp" //设置上间距15dp
android:text="@string/thirdBtn" />
另外,相对布局常用属性介绍(参照:):
①、第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘②、第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐③、第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离
在此,感谢各位前辈的帖子!