当前位置:
文档之家› android讲义-activity
android讲义-activity
设置要用的图片
问题:图片资源如何导入项目?
移动平台软件设计
导入图片资源方法
先在res文件夹上右键 -> 新建 Folder,命名为 drawable
图片资源固定存放位置 名字不要更改
ห้องสมุดไป่ตู้
移动平台软件设计
接着在res/drawable文件夹上右键 -> Import -> 选择 General下的 File System
根据菜单id做分支
case R.id.menu_item1: setContentView(yout.activity_main); return true;
设置布局
case R.id.menu_item2:
setContentView(yout.testlayout); return true; default: return false; } }
移动平台软件设计
移动平台软件设计
4 Activity
4.1 理解Activity
4.2 Activity切换不同的界面 (示例)
4.3 设置Activity背景
4.4 Activity生命周期
4.5 Android程序调试
移动平台软件设计
4.1 理解Activity -- 回顾
R.java文件 系统自动生成的java文件 R.java是项目中所有资 源的索引文件,资源以 (资源id,值)形式存放在 对应的内部类中
值资源是单个映射过去
移动平台软件设计
MainActivity.java代码分析
程序存放的包 导入程序所需的包
Activity一般以 ***Activity 命名 且首字母大写
继承Activity 当一个Activity被创建时,就能从onCreate的 参数saveInsanceState中获得状态数据
布 局 根 元 素
@+id/imageView1:表示在R.id类中创建 一个id值为imageView1的索引变量
引用图片资源
【返回】
移动平台软件设计
步骤2:修改菜单文件
新菜单 默认的老菜单
移动平台软件设计
MainActivity.java菜单代码分析
Activity创建Option类型菜单事件
getApplicationContext() 或用:某个Activity.this
【返回】
移动平台软件设计
4.3 设置Activity背景 (布局背景)
1. 设置背景色
在string.xml中配置:
<drawable name="bgcolor">#000</drawable>
在layout文件中设置属性:
子类 覆盖 父类 方法
生命周期之一(可理解为程序入口)
调用父类的onCreate方法 访问在R.java中注册的 activity_main.xml布局资源文件
设置一个Activity的布局界面
菜单代码分析见4.2节
移动平台软件设计
什么是Activity
布局 图片
资源res文件夹
: id v e alu 的 注 册
移动平台软件设计
下一步,点击Browse,找到图片位置,并选中所需图片 文件,Finish。
选中图片
移动平台软件设计
图片资源导入完成后自动在R.java注册(索引)
文件夹变化 R.Java自动生成
自动生成图片 文件的索引
移动平台软件设计
最终生成的testlayout.xml代码
@+:表示要在R.java中新建一个索引
界面布局文件中描述组件的xml语法
格式1:单个组件简写
<组件名 属性1="属性值" 属性2="属性值"
…
属性n="属性值" />
不要掉了 结束符
格式2:组件中嵌入组件 <组件名 属性1="属性值" 属性2="属性值"
…
属性n="属性值" >
嵌入的其他组件
</组件名>
结束符
移动平台软件设计
注意
通常一个界面对应一个Activity
字体
基 于
每一个显示屏幕就是一个Activity。
R.java文件
Activity能为用户提供可视化界面。 程序通常由多个Activity组成。
其他Java android类、 其他 类 普通java类 类 Android
src文件夹
如有需要,界面 通过id加载资源
Activity1(界面1)
参数menu可获得当前Activity的菜单对象
R.java getMenuInflater()得到当前Activity的MenuInflater 对象,该对象提供inflate()方法用于设置菜单资源。
R.menu.main是res/menu/main.xml文件在R.java中的映射
移动平台软件设计
在Activity的onCreate()方法中添加代码:
this.getWindow().setBackgroundDrawableResource(R.drawable.bg320_480);
设置背景图片的方法
【返回】
移动平台软件设计
4.4 Activity生命周期
Activity生命周期指Activity从启动到销毁的过程。
菜单资源main.xml代码分析
菜单项 两个主要属性菜单id、菜单title
main.xml
@+:表示要在R.java中新建一个索引 @+id/action_settings:表示在R.id类中 创建一个id值为action_settings的索引值
菜单标题是引用@string/action_settings这个 字符串资源,该资源在res/values/string.xml 中定义,这里其实也可以直接赋值(见后)。
<item android:id="@+id/menu_item2" android:title="布局2" />
运行结果:
MainActivity的新菜单
【返回】
移动平台软件设计
为菜单项添加功能
在MainActivity.java中添加如下代码:
@Override
菜单项选中项事件
public boolean onOptionsItemSelected(MenuItem item) { Toast.makeText( MainActivity.this, "选中" + item.getTitle(), 用Toast显示信息 Toast.LENGTH_SHORT).show(); switch ( item.getItemId() ) {
移动平台软件设计
下一步,输入布局文件名:testlayout,布局的根元素选 择:RelativeLayout
移动平台软件设计
下一步,配置xml文档属性,可以不选择,直接Finish。
自动生成的 testlayout.xml文件
移动平台软件设计
将一个ImageView组件拖放到界面上,并设置属性。
内部类
资源目录 res文件夹下的文件会 被映射到R.java中 例如
布局资源、菜单资源 文件是整体映射过去
图片 资源 布局 资源 菜单资源 值资源
例如 在程序中引用资源时用:R.内部类.资源id 例如:setContentView(yout.activity_main); getResources().getString(R.string.hello_world) 在xml布局中则引用:@内部类/资源id android:text="@string/hello_world"
@:表示要引用一个资源
@string/hello_world:表示引用 R.string.hello_world 这个值资源, R.string 类中的值资源来源于 res/values/strings.xml 文件
strings.xml文件
这个就是:@string/hello_world
移动平台软件设计
移动平台软件设计
Activity栈:后进先出
新的
Activity 入栈 活动状态 Activity Activity Activity 暂停状态 或 停止状态 . . . . . . Activity Activity 栈
按了返回键或Activity被finish
出栈
Activity
非活动状态
被系统强制终止
移动平台软件设计
activity_main.xml布局代码分析
可视化设计界面
布局文件通常命名为: activity_***, 其中***对应某个Activity
各种UI组件
自动生成的 布局文件
TextView组件
移动平台软件设计
布局属性
布 局 根 元 素
TextView组件嵌在RelativeLayout组件中 TextView属性
Activity表现为四种状态:
活动状态Active:Activity在用户界面中处于最上层,完全能被 用户看到,能够与用户进行交互。 暂停状态Pause:Activity在界面上被部分遮挡,不再处于用户 界面的最上层,且不能够与用户进行交互。(如弹出选择框时) 停止状态Stop:Activity被其他Activity全部遮挡,界面完全不 能被用户看到。(如玩游戏时来电了) 非活动状态Dead:Activity没有启动或者被finish()。