推荐安卓开发神器(里面有各种UI特效和android代码库实例)
Activity是Ophone系统的4个应用程序组件之一。通过传统方法显示的Activity都是充满整个屏幕,也就是全屏的Activity。事实上,Activity不仅可以全屏显示,还可以象对话框一样直接显示在屏幕上。而且可以通过单击屏幕的任何位置(包括Activity内部和Activity外部)来关闭Activity。
Activity的传统风格
Activity是学习Ophone的入门技术。几乎所有的初学者都会从Activity学起。因此,Activity这个组件对于Ophone的开发人员是再熟悉不过了。下面来看一下Activity的基本配置。
<activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
上面的配置代码是一个典型的Activity配置。在这个配置中主要指定了action和category。按着这个配置显示的Activity会充满整个屏幕。在Ophone中也内置了很多程序,大多数都会包含Activity,例如,图1是一个时钟程序,也是一个典型的Activity。
悬浮Activity
所谓悬浮Activity,就是悬浮在桌面上,看起来象一个对话框。如图2所示。
事实上,实现上面的效果并不复杂,只需要在AndroidManifest.xml文件中定义Activity的<activity>标签中添加一个android:theme属性,并指定对话框主题即可,代码如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.blogjava.mobile" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/date" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="3" /> </manifest>
当使用上面的配置代码时,显示的Activity就会如图2所示。在本例中向Activity添加了两个按钮,分别用来显示当前日期和关闭对话框。Activity的布局文件的内容如下:
<?xml version="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="这是一个悬浮对话框" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_marginTop="20dp"> <Button android:id="@+id/btnCurrentDate" android:layout_width="100dp" android:layout_height="wrap_content" android:text="当前日期" /> <Button android:id="@+id/btnFinish" android:layout_width="80dp" android:layout_height="wrap_content" android:text="关闭" /> </LinearLayout> </LinearLayout>
这两个按钮的单击事件代码如下:
public void onClick(View view) { switch (view.getId()) { case R.id.btnCurrentDate: // 显示当前日期对话框 SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd"); dateDialog.setIcon(R.drawable.date); dateDialog.setTitle("当前日期:" + simpleDateFormat.format(new Date())); dateDialog.setButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); dateDialog.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { new DateDialog.Builder(Main.this).setMessage( "您已经关闭的当前对话框.").create().show(); } }); dateDialog.show(); break; case R.id.btnFinish: // 关闭悬浮Activity finish(); break; } }
单击“显示日期”按钮后,效果如图4所示。
触摸任何位置都可以关闭的对话框
通常需要单击“关闭”或其他类似的按钮来关闭Activity或对话框。但有时需要单击(触摸)屏幕的任何位置来关闭Activity或对话框。关闭Activity很好处理,只需要处理Activity的触摸事件即可,代码如下:
@Override public boolean onTouchEvent(MotionEvent event) { finish(); return true; }
如果是对话框,也同样可以使用onTouchEvent事件方法。不过一般使用了AlertDialog对话框都是封装好的。因此,要使用onTouchEvent事件方法,就需要继承AlertDialog类。在上一节给出的onClick方法中弹出当前显示对话框的代码中使用了一个DateDialog类,该类是AlertDialog的子类,代码如下:
package net.blogjava.mobile; import android.app.AlertDialog; import android.content.Context; import android.view.MotionEvent; public class DateDialog extends AlertDialog { public DateDialog(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent event) { // 关闭显示日期对话框 dismiss(); return super.onTouchEvent(event); } }
在上面的代码中也使用了onTouchEvent事件方法。在该方法中调用了dismiss方法来关闭对话框。读者可以运行本文的例子,看看是否能通过单击屏幕的任何位置来关闭对话框和悬浮Activity。
总结
本文介绍了悬浮Activity和触摸任何位置都可以关闭的对话框的实现。悬浮Activity只需要在<activity>元素中添加android:theme="@android:style/Theme.Dialog"即可。要想触摸任何位置关闭对话框或Activity,需要使用触摸事件(onTouchEvent方法)。如果是对话框,需要通过继承AlertDialog类的方式来使用onTouchEvent方法。
相关推荐
在Android和Ophone开发领域,源码是学习与探索系统工作原理、优化应用性能以及创新技术实践的关键资源。这份"Android/Ophone开发完全讲义源码"为开发者提供了丰富的学习材料,涵盖了Android和Ophone平台的基础到高级...
OPhone开发涉及到对Android API的扩展和优化,对于希望在中国市场推出应用的开发者来说,理解OPhone的特性和差异至关重要。 本书的内容可能包括以下几个方面: 1. **Android基础**:介绍Android系统的基本架构,...
《Android/OPhone开发完全讲义》...以上内容只是《Android/OPhone开发完全讲义》(上)的部分概览,实际书籍中会更详细地讲解每个知识点,并结合实例进行深入解析,帮助读者掌握Android和OPhone应用开发的全方位技能。
《Android/Ophone开发完全讲义》是一本由著名IT教育专家李宁老师编著的专业教程,专注于Android和Ophone的移动应用开发。该教程详细涵盖了Android与Ophone平台的开发技术,旨在帮助开发者全面理解并掌握这两种操作...
5. **多线程与异步处理**:讲解如何在Android中进行多线程编程,以及使用AsyncTask、Handler、Service等进行后台任务处理。 6. **资源管理和国际化**:如何管理和复用应用中的字符串、图片、颜色等资源,以及如何...
在"src.rar"这个压缩文件中,很可能是包含了一系列的Android和Ophone项目源码。这些源码可能涵盖了基础的Activity管理、Intent通信、BroadcastReceiver、Service、ContentProvider等各种Android组件的使用。同时,也...
《Android/OPhone开发完全讲义》是一本深入讲解Android和OPhone开发的书籍,由李宁撰写。这本书的源代码包含在名为"ch02-ch10"的压缩包中,涵盖了从第二章到第十章的所有实例和项目。通过分析和实践这些源代码,读者...
本书是国内第一本同时介绍Android和OPhone的经典著作,国内著名Android社区eoeandroid极力推荐。全书分为五大部分,共二十五章,主要内容包括:Android应用程序架构,移动存储解决方案,Android服务,资源、国际化与...
3. **数据存储**:ch19和ch20可能讲解了Android中的数据存储方法,包括SQLite数据库的使用,Shared Preferences以及文件系统存储。读者会学到如何创建数据库表,执行SQL查询,以及如何在应用中读写数据。 4. **网络...
10. **多媒体支持**:讨论如何在Android中处理音频、视频和图像,包括使用MediaPlayer和Camera API。 11. **传感器与位置服务**:讲解如何利用GPS、Wi-Fi和移动网络获取设备位置,以及使用SensorManager处理各种...
《Android/OPhone开发完全讲义》是一本深入讲解Android和OPhone开发的综合性教材,由知名技术专家李宁编写,包含完整的代码示例。这本书旨在帮助开发者全面掌握Android和OPhone平台的开发技能,从基础到高级,覆盖了...
在Android开发中,理解位置服务是至关重要的。通过集成GPS(全球定位系统)、Wi-Fi和移动网络数据,应用程序可以获取用户的实时地理位置信息,这对于地图导航、天气预报、社交应用等功能是必不可少的。Android SDK...
3. **数据存储**:Android提供了SQLite数据库用于本地数据存储,源码中可能有SQL操作和ContentProvider的使用,展示了如何在应用中读写数据。 4. **网络通信**:Android应用经常需要进行网络操作,如HTTP请求、...
【Android/OPhone开发完全讲义样章】是针对移动应用开发者的一份详细教程,主要聚焦于Android和OPhone平台的开发技术。样章包含了第1、8、14章的内容,这三章分别涵盖了Android开发的基础知识、Android服务以及更...
这份"Android/OPhone开发完全讲义"的源代码,由知名作者李宁编写,提供了一个宝贵的资源库,帮助初学者和有经验的开发者深化对Android系统开发的理解。 首先,让我们聚焦于"Android"这个标签。Android是一种开源的...
《Android/OPhone 开发完全讲义源代码(2)》是针对Android和OPhone开发者的一份重要资源,包含了从第13章到第25章的源代码。这份讲义旨在提供全面深入的Android与OPhone应用开发指导,帮助开发者理解和实践Android...
《Android/OPhone开发完全讲义》是一本深入讲解Android和OPhone开发的书籍,其提供的源代码(ch02-ch10)是学习者理解并实践书中理论知识的重要参考资料。这个压缩包包含了从第二章到第十章的全部源代码,涵盖了...
这些项目实例都是Android开发中常用到的东西,对于Android初学者来说,完全是最好的东西。我敢说,只要你能掌握大部分的项目实例,那么你在工作中遇到的最多是实际开发中的遇到的困难,而非基础技术方面的问题。
Activity在Android中扮演着至关重要的角色,它是应用程序中用户交互的主线程。图4描绘了Activity与View之间的关系。Activity作为一个上下文环境(Context),负责处理与View相关的事件。例如,当用户点击一个按钮时...
本篇将深入探讨Android OPhone源码中的关键知识点。 一、系统架构 Android OPhone的系统架构主要由Linux内核、运行时库、应用程序框架和应用程序四部分组成。源码分析将揭示这四个层次如何协同工作,为开发者提供...