Android应用程序开发之八——桌面组件.ppt
文本预览下载声明
Android 应用开发课程 Android 应用程序开发 桌面组件 实时文件夹 一种桌面组件 用来显示ContentProvider提供的数据 不能直接显示ContentProvider的数据,需要利用代理,将异构的数据源整合成结构相同的数据,放入统一的Cursor中 实时文件夹 定义一个LiveFolderActivity,在IntentFilter中定义action为: ent.action.CREATE_LIVE_FOLDER 这样,当用户添加实时文件夹时,会自动发出action为”CREATE_LIVE_FOLDER”的Intent,于是由LiveFolderActivity来处理 实现LiveFolderActivity 创建Intent,设置Data为ContentProvider的URI,注意:这个ContentProvider必须是专为实时文件夹定义的.如:显示联系人列表的URI为: content://contacts/live_folders/people 为Intent添加四个Extra信息 BASE_INTENT 基础Intent,决定了实时文件夹的内容 NAME 名字 显示在桌面上 ICON 图标 调用Intent.ShortcutIconResource.fromContext()来获取资源图片 DISPLAY_MODE 显示模式 有List和Grid两种 调用setResult(),返回Intent Intent i = new Intent(); i.setData(Uri.parse(content://contacts/live_folders/people)); i.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT, new Intent(Intent.ACTION_VIEW,ContactsContract.Contacts.CONTENT_URI)); i.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, 电话本); i.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(this, R.drawable.png1)); i.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST); setResult(RESULT_OK,i); 快捷方式 与PC桌面的快捷方式概念类似 长按屏幕 选择添加快捷方式 下面的示例将介绍如何将应用添加到快捷方式列表中 快捷方式 示例 创建一个ShortCutActivity,IntentFilter中的action为ent.action.CREATE_SHORTCUT 当用户点击添加快捷方式时,系统会发出action为CREATE_SHORTCUT的Intent 实现 ShortCutActivity 创建Intent 为Intent添加三个Extra数据 EXTRA_SHORTCUT_NAME 显示在桌面上的快捷方式名称 EXTRA_SHORTCUT_ICON_RESOURCE 快捷方式的图标 调用Intent.ShortcutIconResource.fromContext()来获取资源图片 EXTRA_SHORTCUT_INTENT 用户点击快捷方式时,要执行的Intent Intent i = new Intent(); i.putExtra(Intent.EXTRA_SHORTCUT_NAME , 发送邮件); i.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.mail_edit)); Intent mailto= new Intent(Intent.ACTION_SENDTO,Uri.parse(mailto:xxx@)); i.putExtra(Intent.EXTRA_SHORTCUT_INTENT, mailto); setResult(RESULT_OK,i); finish(); ShortCutActivity的代码 Widget 直接显示到桌面上的小控件,定期更新 每个Widget就是一个广播接收器 显示的内容封装成Remot
显示全部