从HelloWorld学习Android Studio的项目结构
AndroidManifest.xml组件注册
<activity
android:name="com.test.helloworld.HelloWorldActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<categroy android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
这段代码表示对HelloWorldActivity活动的注册,没有注册的活动是不可以使用的,intent-filter里边的两行代码特别的重要,表明这个活动是这个项目的主活动,在手机上点击应用,首先启动的就是这个活动。
HelloWorldActivity活动
package com.example.helloandroid;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
- package部分为包的声明
- import引入类,因为你编写的代码中有可能会用到该类中的某个方法,当你.方法的时候会用到这个类,所以会Import,Import就是引用的意思,后面的Android.app.Activity是这个类的具体的路径
- 安卓程序讲究逻辑和视图分离,不推荐在活动中直接编写界面,通用的是在布局文件中编写界面,然后在活动中引入进来。onCreate()方法是一个活动被创建时必须要执行的方法。setContentView()这个方法给当前的活动引入了一个布局。
activity_main.xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.helloandroid.MainActivity">
<TextView
android:id="@+id/myfirstid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name" />
</RelativeLayout>
- 对于布局的id申请,使用android:id=”@+id/id名”
- 对于id 的引用,使用的是@id/id名
- 字符串一般不在布局文件中定义,Android不推荐在程序中对字符串进行硬编码,更好的做法一般是将字符串定义在res/values/string.xml里,然后在布局文件中使用或者代码中引用
string.xml 文件
<resources>
<string name="app_name">HelloAndroid</string>
</resources>
string.xml文件中储存有字符串,引用的方法如下:
- 代码中引用R.string.app_name可以获得该字符串的引用
- 在xml文件中通过@string/app_name可以获得该字符串的引用
其中string部分可以修改为drawable引用图片资源,改为layout引用布局文件,以此类推。
Android Studio的布局单位
1. px:表示屏幕实际的象素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。
2. in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是3.2英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2.54= 8.128厘米。读者可以去量一量自己的手机屏幕,看和实际的尺寸是否一致。 3. mm:表示毫米,是屏幕的物理尺寸。 4. pt:表示一个点,是屏幕的物理尺寸。大小为1英寸的1/72。5. dp(与密度无关的像素):逻辑长度单位,在 160 dpi
屏幕上,1dp=1px=1/160英寸。随着密度变化,对应的像素数量也变化,但并没有直接的变化比例。
6.dip:与dp相同,多用于Google示例中。
7.sp(与密度和字体缩放度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。