首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

狼烟学习笔记1

2012-07-26 
烽火学习笔记1Date 0808Android 开发环境配置开发工具 :eclipse 解压就能使用 需要jreJavaJDK6.0 ?

烽火学习笔记1

Date 0808


Android 开发环境配置

开发工具 :eclipse 解压就能使用==> 需要jre

JavaJDK6.0 ?==> jdk、jre

android需要安装SDK ==> 从网上下载20,30M的包 , SDK 管理器==>?

运行android可执行文件(Linux: tools/android; Windows:/)==> 安装SDK 2.2 ==> 配置一个AVD


安装 JDK ==> SDK ==> 配置环境变量PATH ==> 解压eclipse ==> 安装android开发插件ADT ==> 为android配置模拟器AVD

========================

安装过程中,需要执行一些可执行文件

执行 :

1)可视化==> 双击 ==> Run in Terminal(在终端中运行)

2)终端下

# cd 文件所在的目录

# ./可执行文件名字

执行时遇到不能执行问题,解决?

# cd 文件所在目录

# chmod a+x 文件


配置PATH :

JAVA 的 jdk/bin

SDK adb所在的目录


Linux :

编辑用户目录下的 .profile

#gedit ~/.profile

export PATH="路径1:路径2: ... :$PATH"


=====================================

xml 可扩展的标记语言,允许自定义标记

html 标记语言 ==> web编程


标记一般成对出现<string name="hello" > ?</string>

<Button />

标记允许嵌套,不允许交叉嵌套

<LinearLayout ...>

<Button />

<TextView />

<TableLayout ...>

</TableLayout>

</LinearLayout>

注释 :

1) *.java ?==> ?// , /* ... */ , /** ? ?*/

2) xml , html 文件注释 <!-- ?注释内容 ?-->


布局文件每个控件需要定义的属性

android:id="@+id/名字"

android:layout_width="" ? ?

android:layout_height=""

width 和 height常用的属性值 为 fill_parent 或 wrap_content

java 文件中获取该组件 ( (控件类型)findViewById(R.id.XXX))


TextView

Button

EditText


猜数


==========================================================================

Date 0809

复习 :

1)配置android的开发环境

2)了解android项目下各个目录含义,存放内容

3)可以创建一个简单的android项目

TextView

Button

EditView

步骤 :

i、在Activity对应的布局xml文件 定义组件,设置属性

<LinearLayout></LinearLayout>

<Widget android:id="@+id/idName"

android:layout_width=""

android:layout_height="" />( </Widget> )

fill_parent、wrap_content

ii、java文件访问组件==>获取组件 onCreate()

View findViewById(R.id.XXX) ==> 强制类型转换

iii、对控件操作 ==> 添加监听器

Button ==> OnClickListener


今天内容 :

1. Activity 的生命周期

2. 控件常用属性,尺寸的设置和颜色设置

3. LinearLayout


? ?问题一:Context???

? ?问题二 : fill_parent 与 match_parent ?

1. Activity 的生命周期

? ?构造函数 ==> onCreate() ==> onStart() ==> onResume()(活跃状态)?

如果有其他Activity加入 ==> onPause()

如果Activity完全不可见 ==> onStop()

? finish() , 退出 , 资源不足 ==> onDestroy()


2. 新建一个Activity,要素

1) class XXX extends Activity{}

2) 在 AndroidManifest.xml 中注册Activity

<activity name=".className"></activity>

<activity name=".className" android:theme="@android:style/Theme.Dialog"></activity>

3) 在layout为Activity定义一个布局xml文件

4) 在class中重写 onCreate()方法

3. 启动一个Activity

Intent intent = new Intent(getApplicationContext() , XXXActivity.class);

startActivity(intent);

4. 结束Activity

finish();


练习 :1 . 测试Activity的生命周期

? ? ? ?2. 从一个Activity跳转到第二个Activity

3. 上方的两个问题???


5. 控件常用xml属性

尺寸 :px 像素

dip或者dp设备独立像素

sp放大像素处理字体

颜色 : #RGB#000000--#FFFFFF

图片 : drawable@drawable/名字

名字不采用大写字母,不以数字开头

layout_width

layout_height

layout_text

layout_textColor

layout_background

layout_textSize

layout_padding

layout_margin

1)EditText

layout:lines

layout:maxLines

layout:password="boolean"

layout:numeric="" ?Integer , decimal , signed

android:phoneNumber="boolean"

2) 滚动条

? ?ScrollView提供垂直方向滚动条

layout:scrollbars="vertical"

? ?HorizontalScrollView 提供水平方向滚动条 , 不能为ListView控件设置

3) ImageView

layout:src/setImageResource(int id)

layout:scaleType="" ? 属性值不能自定义

4) 布局嵌套


练习 :

1)测试ImageView的ScaleType不同属性值的含义

2)调整一下你的猜数游戏布局

3)测试在一个布局中分别设置两个Button,其中一个宽高全为100px,另一个宽高全为100dip,运行在不同分辨率的模拟器下,对照一下两个按钮的各自大小

======================================

0810

复习 :

EditText

ImageView


LinearLayout android:orientation="vertical or horizontal" 控件可以使用属性 layout_weight

今天内容 :

1.?

TableLayout ?属性 android:stretchColumns , 列从0数起

<TableRow>

控件可以使用属性 android:layout_column="int" ?设定是第几列

FrameLayout 单帧布局

每个控件都放置在以左上角开始的位置,后面控件遮挡前面控件

2. 选项菜单的使用

1)选项菜单添加

onCreateOptionsMenu(Menu menu) {

menu.add();

menu.add().setIcon(); ?// android.R.drawable.ic_menu_xxx;

}

2)对于选项菜单项的处理

onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

}

3)和选项菜单相关的其他方法

onPrepareOptionsMenu(){}

onOptionsMenuClosed(){}


注 : android内置一部分资源,这些内置资源引用 android.R....

4)可以为控件注册选项菜单,在控件的监听器的方法中使用 openOptionsmenu();


3. 快捷菜单 ContextMenu

1) 重写onCreateContextMenu()

menu.setHeaderTitle()

menu.add()

? ?registerForContextMenu(View v) ; 为v控件添加了快捷菜单 ? ?

? ?unregisterForContextMenu(View v) ;

2)控件注册监听器

setOnCreateContextMenuListener()


4. java代码中添加控件

1)new View(Context)

2)addView(vObject , new XXX.LayoutParams(int w , int h));

练习 :

1. 两种方式实现ContextMenu ?,


明天提交 :1)登录

2)Project :ContextMenu,OptionsMenu

3)Project:

MainActivity :LinearLayoutButton、TableLayout

Button、 FrameLayoutButton、RelativeLayoutButton、AbsoluteLayoutButton

单击不同的按钮显示不同的布局

在每个 布局对应Activity中添加注释,说明该布局的使用


================================================================

0811

RelativeLayout?

AbsoluteLayout

RadioGroup、RadioButton、CheckBox

1. RelativeLayout 相对布局

第一个控件默认放置在左上角,后续控件放置时需要参照某个控件设置位置(Above、Bottom、Left、Right),还可以参照某个控件设置对齐方式(align)

从第二行开始控件的定位一般需要几个属性 :垂直方向的定位/水平方向+对齐

注意 : 控件要设置id

layout_above

layout_bottom

layout_left

layout_right

----------------

layout_alignBaseline

layout_alignTop

layout_alignBottom

layout_alignLeft

layout_alignRight

以上9个属性的值是某个参照控件的id "@id/viewId"

layout_alignParentTop

layout_alignParentBottom

layout_alignParentLeft

layout_alignParentRight

以上4个属性的值是 boolean


2. AbsoluteLayout

第一个控件默认放置在左上角 , 其他控件需要定位,layout_x , layout_y


3. TextView , EditText , Button , ImageView , ImageButton , ScrollView

? ?1)单选按钮,若干个RadioButton为一组,放在一个RadioGroup中

? ?i. <RadioGroup> 的属性 android:checkedButton="@+id/要默认选中的

RadioButton的id"

? ?ii. 在RadioGroup中嵌套若干个RadioButton

? ?iii. 为 RadioGroup添加 onCheckedChangeListener 监听器

在重写的onCheckedChange方法中,可以通过checkedId和RadioButton的id进行比较,来判断那个RadioButton被选中

? ?2)复选框 ?CheckBox

android:checked="boolean" ?/ isChecked()

CheckBox 可以添加 onClickListener 监听器

java文件中判断是否被选中 isChecked()


练习 :

1)RelativeLayout

2)RadioButton与CheckBox


============================================================================

0812

1. 常用Linux命令

1)cd ? ? ?~ 用户主目录 ? ?/ 根目录 ?./ 当前目录 ? .. 上级目录

2)pwd

3)clear

4)ctrl+c终止当前命令的执行

5)sudo chown -R 用户:组 目录把目录的所有者和组重新授权

6)mv 移动

7)cp 拷贝

8)chmod ??

r ?-- 4 ? | w -- 2 | x -- 1

所有者组其他

如 chmod -R 755 /opt/demo

? chomod a+x 文件

9)tar czvf 目录a 目录b ?名字.tar.gz

10)tar xzvf 名字.tar.gz

2. java 常用的集合

List与Set : List可以重复,Set 不允许重复数据

ArrayList , LinkedList

Map : key <==> value

put(key , value)

Object get(key) ?==> value

Set keySet()

Collection valueSet()

3. ListView

需要一个数据适配器 :ArrayAdapter、SimpleAdapter、SimpleCursorAdapter

需要一个数据源

ArrayAdapter ?==> 数组或者动长数组

SimpleAdapter ==> List<? extends Map<String , ? >>

步骤 :

1)需要一个ListView控件

2)设置数据源?

3)ListView的Item项的layout文件

内置布局文件 android.R.layout.simple_list_item1 一行一列

? ?android.R.layout.simple_list_item2两行一列

? ?还有三个 android.R.layout.simple_list_XXX

自定义layout的xml文件

4)定义适配器Adapter

ArrayAdapter(Context context ,?

int layoutResourceId ,?

List|Array data)

SimpleAdapter(Context context,

List<? extends Map<String , ?>> data,

int layoutResourceId ,?

String[] from, // map的key

int[] ?to ?// layout文件中显示value的控件id

)

5)ListView常用的监听器 onItemClickListener, onClickListener, onLongtimeClickListener

onItemClick(AdapterView<?> parent, View view,

int position, long id)

// 获取选中项item ==> 根据数据源的元素类型可以进行强制类型转换

? item = (?)parent.getAdapter().getItem(position); ?

// 如果移除选中项

数据源.remove(item);

(如果添加item,数据源.add())

// 不要忘记通知ListView

adapter.notifyDataSetChanged();

ListView :

1) ?class extends Activity

2) ?class extends ListActivity

ListActivity内置了List控件的一个Activity ,直接在onCreate() 方法中调用setListAdapter()?

可以不定义layout的xml文件的

如果定义layout的xml文件 ,在xml文件

<ListView android:id="@id/android:list" ... ></ListView>

java文件不需要通过findViewById()找出ListView控件,如果非要找到 ListView list = (ListView) findViewById(android.R.id.list);



练习 :

ListView 的使用

extends Activity : 使用ArrayAdapter,数据源设置一些颜色String

添加监听器,更改背景颜色

extends Activity : 使用SimpleAdapter

item显示,左右,左显示图片,右上下两行分别显示title和info

添加监听器,实现选中项的删除

extends ListActivity

显示 ,上方ListView,Activity最下方添加一个Button


各位同学:

烽火3G实训基地的论坛已经开通!大家可以去上面注册,交流,各种学习,生活,技术问题都可以留言,回帖。可以把此论坛作为大家共同的家园!


? ? ? http://www.fenghuo3g.com/bbs/forum.php


















































?

热点排行