Android中获取设备屏幕分辨率

代码及范例:

说明:
通过这段代码可以获取屏幕具体的分辨率数值,方便针对FWVGA/WVGA或FWQVGA/WQVGA这些分辨率相差不大的设备做UI的微调。也可以直接以屏幕分辨率为依据从整体上对UI进行适配。

Android中获取设备加速度信息

代码及范例:

说明:通过以上代码可以获得设备当前加速度的信息。之后可以作如下设定:

所定义的六个浮点数即可用来描述当前的加速度等信息。

Android 开发笔记

作为分类目录的一个补充,在这里按照功能类别对Android开发中的一点心得和笔记作一个索引。其中部分是根据自己在查找网络资料时找到的内容的整理与演绎,在此感谢所有那些无私分享经验的人们。

基本

控件使用

资源调用

声音和图像

用户界面

活动 线程 服务

设备控制

SQLite

Android Studio

其他

Android中调用资源中的字符串

代码:getResources().getString(R.string.资源名)

范例:

说明:调用app_name字符串并绘图。这样就可以使用定义在string.xml文件中的字符串了。

Android中截取当前屏幕画面

代码及范例:

说明:将屏幕画面截取并保存至Bitmap的getpage中。
范例首先声明了getpage并设置分辨率,这个范例中创建了一个800×380像素的Bitmap。之后声明一个新的Canvas。接下来在该Canvas中(范例中为canvas)进行绘图,这里仅仅填充了浅灰色。最后的两条语句则是将画面截取保存在了getpage中。

避免活动切换动画

Android中切换活动时默认会有简单的动画效果,然而有的时候,特别是比如游戏中,可能这种切换效果是希望被避免的。因此在这里提供我个人认为的一种简单可行的办法。

概括地说,就是整个程序只有一个大的类,这个类负责控制模块,比如,对触摸的识别。在这个类中,再包含多个继承于View类的子类,以供在接收到相应的屏幕或键盘指令后执行。这样就可以避免活动之间的动画切换效果。

这个方法的局限性是对于比较复杂的程序会造成一定的麻烦,同时也失去了多个活动的优点。优点是可以省略传递Intent的步骤。适用于较为简单的程序。

Android开发入门

Android无疑是当前最为热门的移动设备操作系统之一,越来越多的开发者开始为Android开发应用。进行Android开发的目的大致可以分为商业盈利目的和业余爱好。对于后者,不少开发者在刚接触Android开发时总会有各种各样的问题,我想在这篇文章里谈谈如何入门Android。

进行Android开发所必需的素质:

做任何一件事,最重要的恐怕就是兴趣了。甚至可以说,只要有兴趣,做很多事都会顺利很多。因为有兴趣的话,就能够坚持下去,就会进行自主学习。其实这个主题不需要多说,因为要做好任何一件事,所必需的素质都是大同小异的,不是么。

进行Android开发所必需的理论知识:

Android的语法是基于Java的。因此如果对于Java有一定的掌握,开始Android的学习将是一件轻松的事。但是Java并不是学习Android前所必需的,甚至对于Java的了解有时反而会成为学习Android的障碍。毕竟,Android有许多独有的特性,以Java的思路去思考Android有时反而会产生限制。不过基础的OOP编程思想是必要的,如果仅仅学习过C语言这样的面向过程语言,恐怕需要先补充一些知识才能对Android比较顺利地上手。

此外一些基本的计算机相关知识自然也是需要的。对eclipse以及命令行的熟悉将是一种帮助。在开发某些类型的应用程序时OpenGL ES以及SQLite等的相关知识也是必需的。

进行Android开发所必需的软硬件准备:

  • 软件方面
    1. 操作系统:操作系统方面并没有太多的限制,Windows、Max OS和Linux都有对应的SDK。
    2. Java运行环境:开发Android之前需要在计算机上配置好JRE(Java运行环境,Java Runtime Environment),安装好JDK(Java开发套件,Java Development Kit )。具体的方法在开发指南中会有介绍。
    3. IDE(集成开发环境,Integrated development environment):Android的话推荐使用eclipse,这也是Android官方所推荐的。目前的最新版是3.7的Indigo。
  • 硬件方面
    1. 分辨率较高的显示器很重要。笔记本电脑的话或许没有办法,如果是台式机的话,推荐使用分辨率至少为1920×1080的显示器。
    2. 硬盘性能也对开发有着比较大的影响。有条件的话还是使用比较高速的硬盘比较好,能节省不少时间。
    3. 处理器的性能主要影响模拟器的速度。如果有实机进行开发的话,这一点就并不那么重要了。

初学Android开发的一点建议:

要开始学习Android的话,可以选择买一本好书,然后边读边实践。也可以从网络上找资料,自己摸索尝试。前者的优点是翻书比较方便,而且内容经过了作者的整理,缺点则是书的内容毕竟有限。后者的优点是免费,内容多,缺点是比较杂乱,花费时间可能会比较多。

另外自己深有体会的是,网络上的中文内容并不是很齐全,相较英语甚至是日语而言,整体水平低了不少。因此在遇到问题时,尝试通过英语搜索会是一个好主意。自己也有多次“通过中文很久无法找到答案,而通过英语/日语很快解决了问题”的经历。另外在例如Stack Overflow或是Quora这样的问答网站里几乎总是能找到高质量的答案(如果没有,就自己提问吧,得到满意回答的可能性是很高的),特别是Stack Overflow,在编程中遇到问题时应该想到它。总而言之,一定的英语能力可以大大提高自己的学习效率。

有了这些准备之后,就开始正式的Android开发之旅吧。首先可以跟着别人的代码摸索一下Android开发的大致流程,之后了解一下Android提供的各种控件。有了一定的熟悉之后,就可以开始考虑试着编写自己的程序了。

推荐书籍:

可以参见我的一些简单的笔记

下一次将具体介绍一下Android开发环境的搭建。

创建程序启动屏幕

代码及范例:

说明:通过新建一个线程来创建一个splash screen,效果就如同电脑上Office、Photoshop、Media Go等软件启动时有一个画面显示进度那样。在此期间程序可以进行初始化工作,减少用户的等待感。

Android中将整型变量转换为字符串变量

代码:Integer.toString(int num)

范例:

说明:将括号内的整型变量转换为字符串变量以供使用,比如drawText等。

Android开发文档中文化计划始动

作为建立这个博客的一个很重要的原因之一,即是翻译并发布Andriod的开发文档。

由于一些众所周知的原因,Android的官方开发者网站在中国大陆是无法正常访问的,因此想要系统地查阅Android开发资料对于许多人来说就存在着一个门槛。同时,官方资料只有英语和日语的版本,又在无形中使不少人望而却步。国内虽有一些中文的材料,但却没有一个系统性的整理。基于以上原因,我一直很想翻译Android的开发文档,一方面是在翻译中学习提高,一方面也是方便其他有志于Android的开发者,当然也算是为Android在中国大陆的推广普及做自己的一份贡献。

整个计划从今天正式开始,我将不定期但较频繁地发布翻译内容。鉴于水平有限,如有任何问题欢迎指教。

PS.虽然猜想应该没有问题,但是仍然想要查看一下Android的开发文档有没有相应的版权政策以免造成不必要的麻烦,将在得到确定之后更新这一文章。

更新:查了一下,Android开发者网站的内容基于cc2.5的开源协议,也就是说对其内容进行翻译和公开发布是完全没有问题的。