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 离某元素上边缘的距离
在此,感谢各位前辈的帖子!