Android Developers
该专栏为本人工作和学习的业余时间,对Android官方文档的翻译,特开此专栏和大家分享。
1024工场
新技术,新未来,1024工场...
展开
-
Android Developers:拖动和缩放
这个课程描述了如何使用手势来拖拽和缩放屏幕的对象,使用onTouchEvent()方法来获取触摸事件。这里是这节课程使用的源代码。 拖动一个对象 ———————————————————————————————————————————————————————————————— 如果你把Android3.0或者更高做为目标,你能使用内嵌翻译 2013-12-17 09:27:42 · 5749 阅读 · 0 评论 -
Android Developers:跟踪移动
这个课程描述了如何在触摸事件中跟踪移动。 无论当前触摸接触点的位置,压力,或者大小的变化,onTouchEvenet()方法被一个ACTION_MOVE事件触发。正如在Detecting Common Gestures中描述,所有的这些事件都被记录在onTouchEvent()方法的MotionEvent参数中。 因为基于手指的触翻译 2013-12-16 10:45:03 · 2448 阅读 · 0 评论 -
Android Developers:检测常见的手势
”触摸手势“发生在用户放置一个或者多个手指在触摸屏上的时候,然后你的应用程序翻译这个触摸模型作为一个特别的手势。手势检测有相应的两个阶段: 采集关于触摸事件的数据。 翻译这个数据去查看它是否符合你的应用程序支持的任何手势的标准。 支持库类 在这个课程中的例子使用了GestureDetectorCompat和MotionEventCom翻译 2013-12-13 09:39:20 · 2653 阅读 · 2 评论 -
Android Developers:两个视图渐变
淡入淡出动画(也被称为渐隐)逐渐淡出一个UI组件,同时淡入另一个。这个动画在你想在你的应用程序中切换内容或者是视图的情况下非常有用。淡入淡出非常微妙并短,但支持从一个屏幕到下一个屏幕流畅的过渡。当你不使用它们的时候,然而,过渡经常感觉生硬和仓促。 下面是从一个进度指示器到一些文本内容渐变的例子。 如果你想跳过并查看一个完整的工作示翻译 2013-12-12 09:57:20 · 2269 阅读 · 0 评论 -
Android Developers:控制照相机
在这节课程中,我们讨论如何使用框架的API来直接控制照相机。 直接控制一个设备的照相机需要比从已经存在的照相机应用程序中请求图片或者音频需要更多的代码。然而,如果你想构建一个指定的照相机应用程序,或者在你的应用程序中完全集成,这节课程向你展示如何实现。 打开照相机对象 —————————————————————————————翻译 2013-12-09 09:38:10 · 2390 阅读 · 0 评论 -
Android Developers:简单的拍照
这个课程说明如何使用一个已存在的相机程序来捕捉照片。 假设你实现了一个众包的天气服务,它让一个全球的天气地图和由设备运行你的客户端程序拍摄的天空照片结合。结合照片仅仅是你的应用程序的一小部分。你想拍照用最小的烦恼,不重新开发照相机。幸运的是,大多数Android设备已经按照了至少一个照相机应用程序。在这个课程,你将会学习如何使用它给你拍照片。翻译 2013-12-06 09:51:14 · 1938 阅读 · 0 评论 -
Android Developers:处理音频输出的硬件
用户用很多选择,当它开始享受Android设备中的音频的时候。许多设备有一个内嵌扬声器,有线耳机的耳机插孔,和一些蓝牙连接和支持A2DP音频。 检查什么设备正在被使用 ————————————————————————————————————————————————————————————————— 你的应用程序的行为如何被哪个硬件输翻译 2013-12-05 10:09:37 · 3648 阅读 · 0 评论 -
Android Developers:控制你的应用程序音量和播放
好的用户体验是可以预测的。如果你的应用程序播放音频,你的用户能使用硬件或者软件音量控制,来控制他们设备,蓝牙耳机,或者听筒的音量是非常重要的。 相似的,在适当的地方可用,播放,停止,暂停,上一首,和下一首媒体回放键,应该在你的应用使用的音频流上执行它们各自的动作。 确定在使用哪个音频流 ——————————————翻译 2013-12-03 09:43:42 · 4010 阅读 · 1 评论 -
Android Developers:位置传感器
Android平台提供两个让你确定设备位置的传感器:磁场传感器和方位传感器。Android平台也提供了一个让你确定一个对象面对设备多远的传感器(称为距离传感器)。磁场传感器和距离传感器是基于硬件的。大部分手机和平台厂商包含磁场传感器。同样的,手机厂商通常包含一个距离传感器确定什么时候手机靠近用户的脸(例如,当打电话的时候)。方位传感器是基于软件的,并且从加速度和磁场传感器产生数据。翻译 2013-11-19 10:09:36 · 3038 阅读 · 0 评论 -
Android Developers:传感器概述
大多数Android设备有内置的传感器,来测量运动,方向和各种环境条件。这些传感器能提供高精度和准确度的原始数据,如果你想监控设备三维运动或者位置,或者你想监控设备周围的环境变化,是非常有用的。例如,游戏可能跟踪设备重力传感器的数据,来推断复杂的用户首饰和动作,例如倾斜,震动,旋转,或者振幅。同样的,天气应用可能使用设备的温度传感器和湿度传感器的数据来计算和报告结露点,或者旅行应用可能使用磁场传感翻译 2013-11-18 09:33:57 · 6304 阅读 · 0 评论 -
Android Developers:指定在线程中运行的代码
这个课程向你展示如何实现一个Runnalbe类,它在一个单独的线程中运行它的Runnable.run()方法中的代码。你也能传递一个Runnable给其它的对象,然后将它连接到一个线程并且运行它。一个或者多个执行一个特殊操作的Runnable对象在某些时候被称之为一个任务。 Thread和Runnabl都是基础类,凭借它们自己,只有有限的能力。相反,它们是强大的A翻译 2013-11-15 10:09:08 · 2264 阅读 · 0 评论 -
Android Developers:按钮
按钮是有文本或者图标(或者文本和图标)组成,它传达用户触摸它的时候所发生的动作。 你可以在你的布局中使用三种方式创建按钮,取决于你是否想创建文本按钮,突变按钮或者两者都有: 设置文本,使用Button类: <Button android:layout_width="wrap_content" andr翻译 2013-11-14 09:47:33 · 7242 阅读 · 0 评论 -
Android Developers:sqlite3
从你连接你设备的远程shell或者你的主机,你能使用sqlite3命令行程序来管理通过Android应用程序创建的SQLite数据库。sqlite3工具包含许多有用的命令,例如.dump打印表的内容,和.schema来打印一个存在的表的SQL CREATE语句。这个工具也能使你迅速的执行SQLite命令。 从一个远程shell使用sqlite3:翻译 2013-11-11 09:24:24 · 2086 阅读 · 0 评论 -
Android Developers:Toast
Toast在一个小的弹窗提供一个关于操作的简单反馈。它仅仅填充消息所需的空间,并且当前的Activity保持可见和交互。例如,在你发送一个邮件之前离开,触发一个”Draft saved”Toast,让你知道你稍后能继续编辑。Toast在一段时间后自动显示。 如果用户被要求显示一个装填消息,考虑使用一个Notification消息代替。翻译 2013-11-12 09:35:37 · 2478 阅读 · 0 评论 -
Android Developers:在SQL数据库中保存数据
保存数据到数据库中是理想的重复或者结构化数据的方式。例如联系人信息。这节课程假设你熟悉通常的SQL数据库,并帮助你开始在Android中的SQLite数据库。在android.database.sqlite包中的API,你将需要使用一个在Android平台有效的数据库。 定义一个模式和契约 —————————————————————————————翻译 2013-11-07 09:35:59 · 2144 阅读 · 0 评论 -
Android Developers:保存文件
Android使用一个和其它平台基于硬盘文件系统相似的文件系统.这个课程描述了如何和在Android文件系统使用File APIs读和写文件. 一个File对象适用于读或者写从头到尾没用中断的大型数据.例如,适用于图片文件或者任何网络交换. 这节课程显示了如何在应用程序中执行基本的文件相关的任务.这个课程假设你熟悉基本的Linux原创 2013-11-06 09:56:35 · 3042 阅读 · 0 评论 -
Android Developers:保存键-值对
如果你有一个需要保存的相对小的键值对集合,你应该使用SharedPreferences APIs.SharedPreferences对象指向一个包含键值对的文件,并提供简单的方法来读和写它们.每个SharedPreferences文件通过框架被管理,并可以私有化或者被共享. 这节课程向你展示了如何使用SharedPreferences API保存和获取简单的值.翻译 2013-11-05 09:26:47 · 2253 阅读 · 0 评论 -
Android Developers:允许其它应用程序启动你的Activity
前面的两节课程集中在故事的一面:从你的应用程序启动其它应用程序的Activity。但是如果你的应用程序能执行一个动作,它对于其它应用程序非常有用, 你的应用程序应该准备相应来自其它应用程序的请求。例如,如果你构建一个社交应用程序,它能和用户的朋友分享消息或者图片,这是你支持ACTION_SEND意图的最大兴趣,所以用户在其它应用程序开始一个“share”动作,并启动你的应用程序来执行这个动作。翻译 2013-11-04 09:28:53 · 2304 阅读 · 0 评论 -
Android Developers:从一个Activity获取结果
启动其它Activity不是单向的。你也能启动其它Activity并获取一个返回结果。为了获取一个结果,调用startActivityForResult()方法(替代startActivity()方法)。 例如,你的应用程序能启动一个照相机应用程序,并获取捕捉的相片作为结果。或者,你可能启动People应用程序,为了用户选择一个联系人,并且你将会获取这个联系的的详翻译 2013-11-03 10:16:40 · 2085 阅读 · 0 评论 -
Android Developers:向其它应用发送用户
Android的一个非常重要的功能是,应用程序基于它要执行的一个“动作”想其它应用程序发送用户的能力。例如,如果你的应用程序要显示一个地图,你没有在你的应用程序中创建显示地图的Activity。相反,你使用一个Intent创建了请求查看地址。Android系统然后启动一个应用,它能在地图上显示地址。 正如在第一课中解释的,Building Your First A翻译 2013-11-02 09:30:31 · 1923 阅读 · 0 评论 -
Android Developers:在Eclipse的ADT中管理你的项目
Eclipse和ADT插件提供了GUI和向导来创建所有三种类型的项目(Android项目,库项目,和测试项目): Android项目包含了所有的文件和资源,它们是构建一个项目成用于安装的apk文件必须的。你需要为任何你最终想安装到一个设备的应用程序创建一个Android项目。 你也可以指定一个Android项目作为一个库项目,它允许它被基于它的其它项目共享。一旦一个An翻译 2013-11-01 09:20:15 · 3253 阅读 · 0 评论 -
Android Developers:日历提供者
... Calendar Provider是用于用户的日历事务的仓库。Calendar Provider API允许你在日历,事务,参与者,提醒等,执行查询,插入,更新,和删除操作。 Calendar Provder API能通过应用程序和同步Adapter被使用。基于程序的类型的规则变化执行调用。这个文档主要集中于和一个应用一样使用Calendar Prov翻译 2013-10-31 09:43:33 · 3896 阅读 · 2 评论 -
Android Developers:在命令行构建和运行
使用Ant构建脚本构建你的应用程序有两种方式:一种用于测试/调试你的引用程序—debug模式—另一种用于构建你最终发布的包-release模式。无论你使用哪种方式构建你的应用程序,它必须在安装在模拟器或者设备之前被签名—当以debug模式构建的时候使用debug key,当以release模式构建的时候使用你自己的private key。 无论你使用debug原创 2013-10-29 09:37:36 · 1914 阅读 · 0 评论 -
Android Developers:绘制9-patch图片
绘制9-patch图片工具让你使用可见即可得(WYSIWYG)编辑器轻松创建Nine Patch图像。 关于介绍Nine-path图片和它是如何工作的,请在2D Graphics的文档中查阅关于Nine-patch的章节。 这里是使用Draw 9-path工具创建Nine-patch图像的快速指南。你想创建一张NinePatch图翻译 2013-10-28 09:38:55 · 3640 阅读 · 0 评论 -
Android Developers:支持不同的屏幕密度
这节课程向你展示如何通过提供不同的资源和使用与分辨率无关的测量单位,支持不同屏幕密度。 使用密度无关的像素 ——————————————————————————————————————————————————————————————当设计你的布局的时候,你必须避免的一个常见的缺陷是使用绝对像素来定义距离和尺寸。用像素定义你的布局的尺翻译 2013-10-27 08:53:30 · 2284 阅读 · 0 评论 -
Android Developers:支持不同的屏幕大小
这节课程向你展示了通过如下方式支持不同的屏幕大小: 确保你的布局能适当地调整大小来适应屏幕 根据屏幕的配置提供适当的UI布局 确保正确的布局被应用到正确的屏幕 提供正确缩放的位图 使用"wrap_content"和“match_parent" —————————————————————————翻译 2013-10-26 08:40:11 · 2807 阅读 · 0 评论 -
Android Developers:和其它Fragment通信
为了重用Fragment UI组件,你应该作为一个定义了它自己的布局和行为的,完全独立的,模块化的组建来构建。一旦你定义了这些可重用的Fragment,你使用一个Activity关联它们,和结合应用程序的逻辑以实现整体复合界面。 经常你会想让一个fragment和另一个通信,例如基于用户事件改变内容。所有Fragment和Fragment的通信是通过相关的Acti翻译 2013-10-25 09:25:55 · 3359 阅读 · 0 评论 -
Android Developers:构建一个灵活的UI
当设计你的应用程序支持一个广泛的屏幕尺寸的时候,你能给予有用的屏幕空间,通过在不同的布局配置重用你的Fragment来优化用户体验。 例如,在一个手持设备上,它可能适合一次在一个单面板用户界面中,显示仅仅一个Fragment。相反的,你可能想在一个平板中并排设置Fragment,它拥有更宽的屏幕大小来向用户显示更多的信息。 图1.两个F原创 2013-10-24 09:33:28 · 1821 阅读 · 0 评论 -
Android Developers:创建Fragment
你可以认为Fragment作为Activity的一个模块部分,有它自己的生命周期,获取它自己的事件,并且你可以在Activity运行的时候添加或者移除它(有点像你可以在不同的Activity中重用的一个”子Activity“)。这节课程讲述如何使用Support Library继承Fragment类,所以你的应用程序仍然是兼容运行的系统版本低于Android1.6的设备。 注意原创 2013-10-23 09:39:33 · 3497 阅读 · 0 评论 -
Android Developers:处理在电视上不支持的功能
电视远不同于其它Android设备: 它们不是移动电话。 处于习惯,用户使用很少它们观看媒体,或者没有交互。 任何在一定距离外和它们进行交互。 因为电视和其它设备有着不同的目的,它们通常没有其它Android设备都有的硬件功能。由于这个原因,Android系统对电视设备不支持下面的功能:翻译 2013-10-22 09:20:59 · 2311 阅读 · 0 评论 -
Android Developers:针对电视优化导航
直接的交互界面是用户使用电视用户体验的一个重要方面。当你针对电视优化你的Android应用的时候,你应该特别注意,当使用远程控制替代触摸时用户在你的应用程序中的实际导航。 这节课程向你展示了通过如下如何针对优化导航: 确保所有布局控制对支持D-Pad。 对UI导航提供高度明显的反馈。 将布局控制放置便于访问。翻译 2013-10-21 09:58:19 · 2029 阅读 · 0 评论 -
Android Developers:针对电视优化布局
当你的应用程序运行在一个电视上的时候,你应该假设用户坐在距离屏幕大约10英寸远的地方。这样的用户环境被作为10-foot UI被引用。为了给你的用户提供一个舒适和愉快的体验,你应该相应的设计和定制你的UI。 这节课程向你展示如何通过以下方式,针对电视优化你的布局: 为横屏模式提供适当的布局资源。 确保文本和控件从一定距离看,足够大保证可翻译 2013-10-20 07:21:46 · 2663 阅读 · 0 评论 -
Android Developers:创建自定义视图类
设计良好的自定义视图就像其它任何精心设计的类。它通过一个容易使用的接口封装了一个组特定的方法。它高效的使用CPU和内存,等等。除了是一个精心设计的类,然而,自定义视图应该: 遵守Android规范 提供在Android XML布局中工作的自定义属性。 发送可访问的事件。 兼容多个Android平台。 Andr翻译 2013-10-19 07:45:22 · 3412 阅读 · 0 评论 -
Android Developers:使ListView滑动流畅
流畅滑动ListView的关键是保持应用程序的主线程(UI线程)从免于繁重处理。确保你的任何硬盘访问,网络访问或者SQL访问在一个单独的线程中。为了测试你的应用个程序的状态,你能启动StrictMode。 使用后台线程 ——————————————————————————————————————————————————————————————翻译 2013-10-17 09:21:05 · 2399 阅读 · 0 评论 -
Android Developers:按需求加载视图
有时候你的布局可能需要较少使用的复杂视图。无论它们是项目详情,进度指示器,或者处理的信息,你能通过在它们被需要的时候加载的方式,来减少内存消耗和加快显示。 定义一个ViewStub ————————————————————————————————————————— viewStub是一个没有大小,并且在布局中不绘制或者不包含翻译 2013-10-16 09:35:19 · 1840 阅读 · 0 评论 -
Android Developers:使用<include/>重用布局
尽管Android 提供各种小部件来提供小的和可以重用的交互元素,你也可能需要更大的重用组件,它要求一个专门的布局。为了高效的重用整个布局,你能使用和标识在当前的布局中嵌入别的布局。 重用布局特别的强大,因为它允许你创建可重用的复杂布局。例如,一个yes/no按钮面板,或者自定义带有描述字符串的滚动条。它也就是说,你的应用的任何跨多个布局的相同的元素能被提取,单独翻译 2013-10-15 09:15:25 · 10305 阅读 · 3 评论 -
Android Developers:优化布局结构
这是一个普遍的误解,使用基本的布局结构是最高效率的布局。然而,每个你加入你的应用程序的组件和布局都需要初始化,布局,和绘制。例如,使用嵌套的LinearLayout实例能导致一个过深的视图结构。而且,嵌入几个使用laytou_wight参数的LinearLyaout实例,由于每个孩子需要被测量两次导致特别昂贵的开销。当布局是一个反复的填充的时候,这个特别重要,例如当被使用在一个ListView或者翻译 2013-10-14 09:19:53 · 2351 阅读 · 3 评论 -
Android Developers:运行你的Android应用
如果你跟随这前面的课程创建一个Andorid项目,它包含了”Hello World”源文件的一个默认集合,它允许你立刻运行这个应用。你如何运行你的应用程序基于两件事情:你是否拥有一个真正的Android设备,和你是否使用Eclipse。这节课程向你展示了如何在一个真正的设备和Android模拟器中,安装和运行你的应用程序,和在同样的情况下,使用Eclipse或者命令行工具。在你运行你的应用翻译 2013-03-05 17:19:22 · 1390 阅读 · 0 评论 -
Android Developers: 创建一个Android项目
Android项目包含所有组成你的Android应用程序的源代码文件。Android SDK工具使用默认项目向导和文件,来开始一个新的项目使这个变得简单。这个课程真实了如何创建一个新的项目,使用Eclipse(和ADT插件)或者在名命令使用SDK工具。注意:你应该已经安装了Android SDK,并且如果你使用Elicpse,你也应该已经安装ADT插件(version21.0.0或者更高)翻译 2013-02-27 13:36:20 · 1415 阅读 · 0 评论 -
Android Developers:建立你的第一个应用程序
欢迎来到Android应用程序开发!这个课程教你如何建立你的第一个Android应用程序。你将会学习到如何创建一个Android项目,并运行一个可调试的应用版本。你将也会学习一些Android应用设计的基本原理,包含如何构建一个简单的用户界面和处理用户输入。在你开始这节课程之前,确保你已经设置好了你的开发环境。你需要:下载Android SDK。为Eclipse安装ADT插翻译 2013-02-27 13:14:02 · 1358 阅读 · 1 评论