android 基础知识(一)

一、布局文件实现步骤:

1、在res/layout目录下创建一个demo_layout.xml布局文件,

2、使用RelativeLayout嵌套一个LinearLayout来进行布局,往里添加一个TextView和两个Button,并设置属性。

3、创建一个FirstLayoutActivity类,在onCreateView()方法中,使用findViewById()实例化组件。

4.Activity跳转:

1.1创建一个Activity,并且注册

1.2通过intent指定从哪个Activity跳转到新的Activity

1.3再通过Activity的startActivity(Intent intent)方法来启动

5.按钮点击监听

1.1在布局文件中,部署一个按钮(Button)。

1.2为按钮添加一个ID,用来在Activity中通过findViewById()来寻找到按钮的实例。

1.3创建一个点击监听View.OnClickListener()

1.4调用按钮的setOnClickListener()方法来为按钮设置一个监听器

二、布局类型:

1.AbsoluteLayout,绝对布局,使用坐标系规范屏幕,原点在左上角,x向右是正方向,y向下是正方向。

1.1关键属性:

layout_x,layout_y,在AbsoluteLayout中放置控件时,这两个属性是AbsoluteLayout特有的,只能在AbsoluteLayout中的控件才能使用。他们用来确定指定的控件的摆放坐标(控件左上角的坐标)。

1.2优缺点:

优点:使用AbsoluteLayout,能够最自由地去摆放我们界面上的控件。

缺点:由于AbsoluteLayout是使用坐标系的方式来确定子控件的摆放位置,但是由于Android平台屏幕的碎片化,不能确定用户的屏幕分辨率,那么贸然使用这种布局类型,可能让用户感受不一样,影响用户体验。

2.LinearLayout,线性布局,所有的子控件都排成一列整齐摆放。

2.1关键属性:

LinearLayout属性:

android:orientation="vertical"["horizontal"]

表示LinearLayout中的子控件的摆放方向,vertical垂直摆放(从上到下)。horizontal水平摆放(从左到右)。

android:baselineAligned="true"["false"]

表示LinearLayout中的子控件的摆放要依据基线来对齐。

true是对齐,false不对齐。

android:baselineAlignedChildIndex="childIndex"

表示以哪一个子控件的基线来对齐。

android:gravity="center_horizontal"

表示子控件对齐的方向,可以向左,右,上,下,居中...

子控件属性:

android:layout_weight="1.0"

这个属性只有在LinearLayout中有效,他表示子控件所需要占据的大小,用于与其他的控件分割父控件的空间。

2.2优缺点:

优点:线性布局,受到屏幕分辨率影响最小。子控件排列整齐。

缺点:子控件只能按照指定的几种方式摆放,可能无法适应商业项目中部分花样繁多的功能界面的需求。

3.FrameLayout,帧布局,放置在内部的所有控件都会分层摆放,一个控件一层。后放入的控件会摆放在最上面的层里。如果最上面的一层的控件不够大,也能够看到他下面的其他控件。

3.1关键属性:

FrameLayout属性:

android:foreground,可以使用这个属性在整个布局的前面添加一个图片或者颜色。

android:foregroundGravity,调整由android:foreground设置的图片的对齐方向。

3.2优缺点

优点:有多重动画控件都由FrameLayout实现,说明FrameLayout很适合播放动画的功能界面实现。

缺点:约束比较强,控件摆放的方式只有这一种,对内部控件操作的手段也比较少。

4.RelativeLayout,相对布局,通过父控件的边或者以前设置的控件的位置,来确定现在放入的新的控件的位置

4.1子控件的属性:

android:layout_alignParentTop

android:layout_alignParentBottom

android:layout_alignParentLeft

android:layout_alignParentRight,贴到指定的父控件的边缘。

android:layout_toLeftOf

android:layout_toRightOf

android:layout_toStartOf

android:layout_toEndOf,放置在指定id的控件的指定方向上。

android:layout_above

android:layout_below,放置在指定id的控件的上或下。

android:layout_alignLeft

android:layout_alignRight

android:layout_alignTop

android:layout_alignBottom,与指定id的控件边缘对齐。

android:layout_centerInParent,将我们的控件放置在父控件的中间。

4.2优缺点

优点:内部子控件都是自己相对摆放,在屏幕分辨率出现巨大变化的时候,他们之间的相对位置都不会变。这个布局类型可以很大的减少我们屏幕出现变化时,界面效果的差异性。

缺点:当我们的控件之间的相对关系建立之后,不容易再做修改。

5.Tablelayout,表格布局,不过必须配合TableRow使用,否则就是一个垂直排列的线性布局。

5.1关键属性:

TableLayout:

android:stretchColumns="0"拉伸列,列号从0开始。

android:collapseColumns="0"隐藏列,同上。

android:shrinkColumns="0"收缩列,同上。

TableRow:

android:weightSum="5",此属性与控件的 android:layout_weight="1"一起使用,用来设置一行的所有控件的大小。(只有新版本可以使用,在4.0版本后可以使用)

6.GridLayout,网格布局,不需要TableRow这么麻烦

6.1关键方法

android:columnCount="3"

android:rowCount="5"

可以通过上面两个方法方便设置我们网格布局的行数和列数。

子控件也可以使用android:layout_column="1"来设置子控件想排在第几个。

三、常用控件:

1.  Button ,按钮

常用Button有3中:

1.1当你只需要在按钮上放置文字信息时,可以使用Button。

1.2当你只需要在按钮上放置图片时,可以使用ImageButton。

1.3当你需要在按钮上同时放置文字和图片时,可以使用Button。

只有文字信息的按钮:

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button_text"

... />

只含有图片的按钮:

<ImageButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/button_icon"

... />

同时含有文字和图片的按钮:

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button_text"

android:drawableLeft="@drawable/button_icon"

... />

1.4常用属性:

1.使用android:onClick属性,方便地响应按钮的单击事件。

1.1.在XML文件中的Button标签中加入android:onClick属性。

1.2.在加载这个XML文件的Activity中加入一个固定格式的方法:

public  void  响应方法名(View view){}

1.3.将响应方法的名字填入android:onClick的值中。

使用android:backgroud来设置一个新的外观。

新的外观图片制作一个selector:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:state_pressed="true" android:drawable="@drawable/pic1"></item>

<item android:state_pressed="false" android:drawable="@drawable/pic2"></item>

</selector>

1.5 onClickListener

1,5.1  获取Button对象。

1.5.2. 创建View.OnClickListener的对象。

1.5.3. 然后将View.OnClickListener的对象交给Button对象。

2.  EditText:可输入文本框,这个控件可以让用户输入文本信息。

<EditText

android:id="@+id/email_address"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

2.1属性:

android:hint="@string/email_hint"属性:编辑框加入一个提示信息。

android:inputType="textEmailAddress" 调整软键盘样式,得到只有数字或者方便输入邮箱地址的软键盘。

android:imeOptions="actionSend"自定义软键盘中确认按钮。

android:password="true"以密文形式输入信息。改回false之后,以明文形式输入。

我们加入了IMEOptions属性后,我们需要一个监听器来监听这个按钮的响应:

EditText editText = (EditText) findViewById(R.id.search);

editText.setOnEditorActionListener(new OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

boolean handled = false;

if (actionId == EditorInfo.IME_ACTION_SEND) {

handled = true;

}

return handled;

}

});

除EditText外,我们还有AutoCompleteTextView作为文字信息输入的控件

3.  TextView,文本框。

3.1常用属性:

android:text 文本信息

android:textSize 字体大小(单位sp)

android:textColor 字体颜色

android:autoLink 能使文字中的电话号码,网址,邮箱变成类似于超链接的样子。

android:lines 行数

android:maxLength 最大字数

4.  CheckBox,多选框。

4.1可以使用设置onClick的方式加入一个写在Activity中的点击响应

方法。

4.2我们可以使用多选框的监听器:OnCheckedChangeListener

4.3自定义样式:

在android:button属性上设置Selector。

5.  RadioButton,单选框。

这个控件不能单独使用,需要与RadioGroup一起使用。给RadioGroup加入一个OnCheckedChangeListener来监听我们的选择监听。

一定要注意这个监听器和多选框的可不是一个,注意他们的包名!

6.DatePicker,TimePicker 日期和时间

在布局文件中定义DatePicker和TimePicker,然后通过Canlendar类获得系统时间,通过init方法将日期传给DatePicker,

并设置OnDateChangedListener来监听日期改变,当时间被改变时需要设置setOnTimeChangedListener监听来设置时间。

<DatePicker

android:id= "@+id/datePicker"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

<TimePicker

android:id= "@+id/timerPicker"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

7. ListView,列表控件,实现一个数据列表,方便修改数据,同时影响界面。

<ListView

android:id="@+id/listview"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:entries="@array/Cities" >

</ListView>

7.1 常用属性

android:divider="@color/mycolor" 间隔线的图片或者颜色

android:dividerHeight="3dip"间隔线的宽度用于修改ListView中每个item之间的间隔线。

android:stackFromBottom="true"从列表最下方开始。

android:transcriptMode="alwaysScroll"一直显示新来的数据。

android:cacheColorHint="@android:color/transparent" 滑动时,背景透明。

7.2 使用适配器的方式显示ListView:

1.在布局文件中,定义一个简单的ListView标签。

2.在Activity中实现一个我们自己扩展的BaseAdapter子类对象。

3.通过findViewById在Activity中找到布局文件中的ListView对象。

4.将适配器对象设置给我们的ListView对象。

ListView,只能通过适配器,加载他的子控件。

7.3 ListView动态内容的动态添加

1.由用户或服务器获取的数据,更新我们的数据容器。

2.然后调用Adapter.notifyDataSetChanged();来提醒ListView数据已经更新,

界面需要刷新。

7.4 ListView性能优化:

1.复用convertView

在getView的参数列表中,提供给我们了一个convertView,这个视图对象提供了一种性能优化的手段:复用刚推出屏幕范围的那个convertView。

2.减少findViewById的使用次数

在convertView中有一个Object类型的tag属性,可在这个属性上存储一个对象。利用这个对象存一个定义的内部类对象,这个对象保存

convertView的子控件对象。这样复用convertView的时候也就可以复用以前取出的子控件对象了。

8.AdapterView

Adapter是适配器,适配器是用来连接两个不相干的事物的桥梁。同时,适配器是用来连接我们的AdapterView和数据。

AdapterView中我们常用的有:ListView(列表控件),GridView(网格控件),

Gallery(画廊)。

时间: 2024-11-13 09:23:20

android 基础知识(一)的相关文章

Android基础知识(6)—数据持久化之数据存储

阅读前,请浏览此处上方目录. Android基础知识(6)-数据持久化之数据存储 本章内容为个人笔记,参考书籍有:<疯狂的android>第3版.<第一行代码> 首先,我们要知道什么是数据持久化. 数据持久化就是指那些内存中的瞬时数据保存到存储设备中,保证即使手机在关机的情况下,这些数据不会丢失.保存在内存中的数据是处于瞬时状态,保存在存储设备中的数据是处于持久状态.持久化技术则是提供了一种机制可以让数据在瞬时状态和持久状态之间进行转换. Android系统主要提供了三种方式用于简

android基础知识13:AndroidManifest.xml文件解析

1.重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中必须的文件.它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息. 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所

Android基础知识【项目实训】【1】

[该项目实训是Android基础知识的一个综合练习] [项目题目]:校园订餐App设计 综合案例 [设计目标] 1.必要功能 ?快餐店浏览,与订餐 ?今天订餐活动查询与订餐,特价饭菜预定 ?分类订餐查询,预定 ?常定饭菜  预定 ?健康餐推荐 ?定时预定,提前预定 ?订单查看, ?餐馆与饭菜打分,评价 ?用户注册与登录 2.扩展选择功能 ?快速拨打电话 ?饮食跟踪,热量估算 ?系统设置 [项目说明] 该项目为实际应用项目的单机 简化版本,只需要完成Android平台App的设计与开发工作. Ap

Android基础知识【项目实训】【2】

[该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材] [项目题目]:校园订餐App设计 综合案例 [目标] 因为项目只涉及基础知识,因此项目中所用数据并不联网,都读取单机数据库.(即将该项目中所用数据,如菜品信息.店铺信息等存入数据库)用户在第一次打开该项目时,会在用户手机上创建这些数据库,并插入测试数据. 1.先制作一个欢迎界面,欢迎的同时,准备数据库 欢迎界面Activity对应

Android基础知识【项目实训】【3】

[该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材] [项目题目]:校园订餐App设计 综合案例 [目标] 欢迎界面过后,应该显示app的主界面了,根据[UI设计指导]中的规划,主界面采用上下两级标签导航.这部分是app开发中比较麻烦的一块. 1.先来看一下,最终的效果吧,这样做起来比较有底: 默认显示的主界面,下部是主导航,上面是二级导航,默认打开的是"促销打折"这一版面

Android基础知识【项目实训】【4】

[该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材] [项目题目]:校园订餐App设计 综合案例 [目标] 主界面的功能确实比较复杂,因此上一篇知识说的周边内容.现在开始说这个界面的代码和布局文件. 1.先看一下项目的组织结构吧,要不然不好说他们的关系: (1)db包中的都是跟 数据库相关的 (2)eatall中放的都是activity或者fragment (3)entity中放的实

Android基础知识【项目实训】【5】

[该项目实训是Android基础知识的一个综合练习,特别提示:项目中会用到一些图片素材,都是随意整理的,稍后会上传一个资源,包含该事项项目的基本功能,也含有图片素材] [项目题目]:校园订餐App设计 综合案例 [目标] 主界面中包含两个二级子界面,分别是活动界面和账单界面,下面介绍它们的实现代码和布局文件. 1.下面这个是 活动界面的Activity代码,因为这个界面加载时需要 读取数据库中数据了,所有功能的实现上会涉及到 db那个包中一些类. 注意这个Activity也是继承 Activit

看看android基础知识,谁帮我作答

不管怎么着,了解一点android的基本知识还是有必要的,就当开阔一些自己的眼界吧.... android的四大功能组件是_activity_,_service_,_BroadcastReceive广播接收器_,_Content Provider_. android的系统架构是android,_java_虚拟机和_linux_操作系统. 在Activity的___distoryed______状态和__stop_情况下,系统可能会回收Activity. ActivityA中的某个Button的o

(Android 基础知识review)打电话

1.main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"

android基础知识

1. 前言 1.1. 什么是3G.4G Ÿ 第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升. Ÿ 第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求. Ÿ 目前主流的3G技术标准有三种: WCDMA:全球80%以上的3G网络都是采用此种制式.中国联通运营.186 CDMA2000:目前日韩及北美使用较多.中国电信运营. 189 TD-SCDMA