Android开发学习笔记 by ZhangJie
l Eclipse和ADT的配置
l Android 平台被称为一个产品组合,因为它是一系列组件的集合,包括:
基于 Linux 内核的操作系统
Java 编程环境
工具集,包括编译器、资源编译器、调试器和模拟器
用来运行应用程序的 Dalvik VM
l Android 应用程序的四种主要类型
活动、服务、接收器和 ContentProvider。我们还要看看显示用户界面(UI)元素的视图
l Android 视图
Android 活动通过视图显示 UI 元素。视图采用以下布局设计之一:
LinearVertical后续的每个元素都排在前一个元素下面,形成一个单一列。LinearHorizontal后续的每个元素都排在前一个元素右边,形成一个单一行。Relative后续的每个元素相对于前一个元素有一定的偏移量。Table与 HTML 表相似的一系列行和列。每个单元格可以包含一个视图元素。
选择一种布局(或布局的组合)之后,就可以用各个视图显示 UI。
视图元素由大家熟悉的 UI 元素组成,包括:
Button
ImageButton
EditText
TextView(与标签相似)
CheckBox
Radio Button
Gallery 和 ImageSwitcher(用来显示多个图像)
List
Grid
DatePicker
TimePicker
Spinner(与组合框相似)
AutoComplete(具有文本自动补全特性的 EditText)
视图是在一个 XML 文件中定义的。
给出一个简单的 LinearVertical 布局示例
<?xmlversion="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Activity 1!"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Activity 1, second textview!"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch To Activity2"
id="@+id/switchto2"
/>
</LinearLayout>
注意,每个元素有一个或多个属于 Android 名称空间的属性。
l 构建 Android 应用程序
l View初步
l 监听器用法:
获取代表控件的对象
button=(Button)findViewById(R.id.button);
定义一个类,实现监听器接口
class ButtonListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
count++;
textView.setText(count+" ");
}
生成监听器对象
ButtonListener buttonListener=new ButtonListener();
为控件绑定监听器对象
button.setOnClickListener(buttonListener);
l 控件布局初步
控件布局基本概念
控件布局方法就是指控制控件在Activity当中的位置,大小,颜色以及其他属性。
两种方法:
使用布局文件完成控件布局
在Java代码当中完成控件布局
控件布局种类
Linear Layout掌握最简单
Relative Layout最常用
ListView 列表
Grid View
各类布局方法的特点
线形布局的基本使用方法
wrap_content设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容
match_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。
l 长度单位以及内外边距
距离单位之px 有像素
距离单位之dp 设备无关像素
dp = dip (Device Independent pixels)
换算公式px = dp * (dpi / 160)
在dpi为160的屏幕上: 1dp = 1px
距离单位之sp sp单位通常用于指定字体的大小
控件的外边距与内边距
layout_margin 外边距 padding 内边距
l 多选按钮(CheckBox)
多选按钮(CheckBox)的基本概念
1.选中你要加注释的区域,用ctrl+shift+C会加上//注释
2.先把你要注释的东西选中,用shit+ctrl+/会加上/* */注释
3.要修改在eclispe中的命令的快捷键方式我们只需进入windows ->preference -> General -> key设置就行了(转)
补充:选中要加注释的区域,ctrl+/ 会加//注释 2010/09/13
选中后,ctrl+shift+\,去掉选中部分的注释
<CheckBox/> 与CheckBox
OnClickListener与OnCheckedChangeListener监听器
l 单选按钮RadioButton
单选按钮(RadioButton)的基本概念
RadioGroup与RadioButton
OnClickListener与OnCheckedChangeListener监听器
也可以给RadioButton绑定
//Eclipse开发Android时遇到R.java was modified manually! Reverting to generatedversion!
l 图片视图 ImageView
图片视图(ImageView)的基本概念
<ImageView/>与ImageView
神奇的ScaleType属性
1 CENTER
2 CENTER_CROP
3 CENTER_INSIDE
4 FIT_CENTER(START,END)
5 FIT_XY
ImageView控件应用
常用标签属性
android:scaleType
控制图片适合 ImageView的大小,如何变更图片大小或移动图片。
matrix :用矩阵来绘图
fitXY :拉伸图片(不按比例)以填充View的宽高
fitStart :按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边
fitCenter :按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间
fitEnd:按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边
center:按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示
centerCrop:按比例放大原图直至等于某边View的宽高显示。
centerInside:当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。
android:tint
为图片设置着色颜色。
代码:<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center| fitCenter| fitXY“
android:src="@drawable/c" />
使用matrix填充ImageView
matrix:坐标变换矩阵。
坐标变换矩阵是一个3*3的矩阵,用来对图形进行坐标变化,将原来的坐标点转移到新的坐标点。
因为一个图片是有点阵和每一点上的颜色信息组成的,所以对坐标的变换,就是对每一点进行搬移形成新的图片。
具体的说图形的放大缩小,移动,旋转,透视,扭曲这些效果都可以用此矩阵来完成。
matrix按比例放大:
代码:xml:
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent“
android:scaleType="matrix"
android:src="@drawable/c"/>
java:
Matrix matrix = new Matrix();
matrix.setScale((float)3.0, (float)3.0); //设置放大比例,宽高各3倍
imgv.setImageMatrix(matrix);
效果:
matrix旋转图像
xml:
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent“
android:scaleType="matrix"
android:src="@drawable/c"/>
java:
Matrix matrix = new Matrix();
matrix.setRotate(45,160,240);
imgv.setImageMatrix(matrix);
l
效果:
为图片设置着色颜色
代码:
ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:tint="#33ff9966"
android:src="@drawable/c" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/c" />
效果:
l LinearLayout布局的嵌套
l 奇葩的layout_weight的属性
通过以上实验可知:
(一) android:layout_height = "fill_parent"
(二) android:layout_height = "wrap_content"
在(一)、(二)2种情况在相同的weight属性下呈现出正好相反的情况
l 相对布局
l 时间与日期
TimePicker的使用方法
OnTimeChangedListener的使用方法
DatePicker的使用方法
AnalogClock的使用方法
l ProcessBar
l seekBar和RatingBar