欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android 学习笔记杂记

程序员文章站 2024-03-13 15:29:39
...
1.android:layout_width="fills_parent" //页面组件的宽度,与父容器宽度相同,后来与match_parent等同
	android:layout_height="wrap_content" //页面组件的高度,取决于它的内容
2.所有Activity都必须在AndroidManifest.xml文件中进行注册才能生效,这个清单文件详细地说明了该应用地名称、所使用图标以及包含组件、所在包等。是整个Androis应用地全局描述文件
在application标签内通过activity标签填入注册信息:
使用android:name来指定具体注册哪一个活动如com.example.activitytest包下的FirstActivity活动,所以值为.FirstActivity
最外层的标签manifest就已经指定了包名了;
android:label可以指定活动中的标题栏的内容,显示在活动的最顶部,还会在运行的时候成为启动器(Launcher)中应用程序显示的名称
之后的<intent-filter>标签添加的
<intent-filter>
	<action android:name="android.intent.action.MAIN" />
	<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
表示如果想让FirstActivity作为我们这个程序的主活动,即点击桌面应用程序图标时首先打开就是这个活动,那么就一定要加入这两句声明
在<manifest.../>中添加<uses-permission.../>可以声明该应用自身所拥有的权限,所以所有的权限都位于Manifest.permission类中
如<uses-permission android:name="android.uses-permission.CALL_PHONE"/>声明该应用本身具有打电话的权限
在在<activity.../>中添加<uses-permission.../>可以声明该应用自身所需的权限
如<uses-permission android:name="android.uses-permission.SEND_SMS"/>声明该应用本身需要发信息的权限
3.Activity组件(子类)(需要继承Activity基类)理解成一个用户界面,里面包含了很多的View对象,
可以通过setContentView(layoutResID)设置布局,在setContentView的参数里面,会获取到一个View对象作为参数,如把layout文件下的first_layout就是View对象,然后会把这个View对象添加到一个ViewGroop(mContentParent)中。ViewGroup是View的一个子类,可以作为View来使用,即ViewGroup可以包含ViewGroup组件,也可包含View组件,由于ViewGroup类是抽象类,所以一般使用它的子类来作为容器类,例如各种布局管理器。ViewGroup有内部类LayoutParams提供了一些XML属性,如android:layout_height,android:layout_width,有三个值:match_parent,fill_parent和wrap_content
Service组件(需要继承于Service基类)也与Activity组件类似,区别是:Service组件通常运行在后台,一般不与用户交互,没有图形用户界面
4.创建UI布局的方式有两种,(体现MVC原则) 自己在Java里写代码或者通过XML定义布局,后者显得更加方便和容易理解! 也是我们最常用的手段!
如:在layout文件下定义first_layout.xml文件并进行编辑,然后在java代码中使用setContentView(R.layout.first_layout)来显示first_layout.xml的视图效果
由于一个Activity可以有多个相同或不性质的组件,所以使用id来区分它们,使用android:id可以做到(在XML文件中使用的id值是英文,然后在R文件中会自动在id类中加上一个button_1的变量并给它赋值),如定义一个id为"button_1"的Button组件,的id定义形式如:android:id="@+id/button_1",如果想在java文件中访问这个组件,可以通过
findViewById(R.id.button_1),访问id为button_1的按钮组件(注意,该函数返回的是一个View对象,而组件都是View的对象或者其子类的对象,所以需要向下转型),一旦获得组件后,就可以通过代码来控制各UI组件的外观行为了,如为UI组件绑定事件监听器等
控制UI组件的XML属性都有对应的方法:
如android:id 相关方法是setId(int)
5.一般使用XML文件控制变化小、行为比较固定的组件,而java代码控制变化较多、行为比较复杂的组件
6.所有的布局管理器如LinearLayout、TableLayout、FrameLayout、AbsoluteLayout、RelativeLayout都是ViewGroup的子类,addView(View child)在ViewGroup中实现,所以布局管理器可以使用addView方法向布局管理器所代表的布局添加其他组件
7.表格布局:TableLayout,是通过其他组件决定行和列的多少的下:
android:stretchColumns="1,2"(与数组相似)表示2,3列可以被拉伸(使组件填满指定列),还有被收缩:android:shrinkColomns,被隐藏:android:collapseColumn,先在表格布局中定义指定哪一列的行为,然后再在TableRow中对每一列增加组件。
而TableRow是向TableLayout表格布局中添加行的XML标签.
8.LinearLayout线性布局:控制各组件的对齐、排列关系,有XML属性:
android:gravity="bottom|center_vertical" ,各组件垂直居中处于屏幕中心对齐
android:orientation="vertical"垂直排列