`
Beyon_javaeye
  • 浏览: 66841 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
应用程序后向兼容   在全世界,现在人们手里有着各种各样的基于Android的设备。而这些设备中,有很多种Android平台的版本在使用,一些运行着最新版平台,而另一些还在运行着老的版本。作为一名开发人员,你需要考虑你的应用程序是否支持后向兼容——你想你的应用程序能在所有的设备上运行吗,或是只是在最新的平台上运行?在某些情况下,在支持的设备上部署新的API,并支持老的设备是很有用的。 设定minSdkVersion   如果一个新的API的使用对应用程序来说是不可或缺的——也许,你需要使用在Android 1.5(API等级3)中引入的视频录制API——你需要在应用程序的manifest文件中添 ...
Zipalign:一个简单的优化   Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整 ...

实时文件夹

实时文件夹   实时文件夹是一种用来显示由某个ContentProvider提供的数据信息的桌面组件。要创建一个实时文件夹,必须要有两方面的支持。一方面是,要定义一个用来创建实时文件夹的Activity。另一方面是,所指定数据信息URI的ContentProvider必须支持实时文件夹的查询。本节中就将要介绍如何为应用程序创建实时文件夹。   与在Launcher的桌面上添加一个快捷方式类似,用户在桌面上长按后选择实时文件夹就会弹出一个可用实时文件夹的列表对话框。若我们想把自己应用程序内的Activity也添加到这一列表中,同样只需要在该Activity注册时添加一个Action为andro ...
Drawable Mutations   这篇文章将讨论Android应用程序中使用的线程模型,并讨论如何确保应用程序最佳的UI呈现(通过创建工作者线程来处理耗时的操作,而不是在主线程里处理)。这篇文章还将阐述与运行在主线程中的UI组件交互的API以及创建托管的工作者线程的API。 UI线程   当应用程序启动后,系统创建了一个叫做“main”的线程。主线程,也叫UI线程,非常重要,因为它负责分发事件给构件,包括绘制事件。也是这个线程,在这里才能与Android UI工具包中的组件进行交互。   例如,当你触摸屏幕上的一个按钮时,UI线程会分发一个触摸事件给构件,然后,构件会设定自己为被按 ...
更快的屏幕方向更改   Android操作系统已经被非常多的手机硬件所采用。就目前推出的第一款安装有Android操作系统的T-Mobile G1,在G1上可以体验到旋转手机从而实时的改变屏幕显示模式,比如我们打开硬件键盘,屏幕将会实时的从纵向显示转变为横向显示。   为了达到简化开发的目的,可以在屏幕变化时自动保存现有的资源或者一些必要的信息从而在变化后可以很快的根据新的标准重新恢复Activity所包含的内容。Android基于这方面的考虑预置了一种可以调用特定资源从而匹配屏幕变化的行为,比如说标记横向屏幕所对应的layout或者一些drawables资源。关于这方面的资料可以查看官方给出的 ...
GLSurfaceView介绍 简介   SDK 中的 android.opengl.GLSurfaceView 类提供如下功能: 在 OpenGL ES 和 View 系统之间建立联系; 使得 OpenGL ES 可以工作在 Activity 生命周期中; 可选择合适的 frame buffer 像素格式; 创建并管理一个单独的渲染 ...

Gestures

Gestures   目前Touch Screens技术在不同的应用领域发挥着重要的作用。尤其各种智能移动设备向着更薄、更轻、更强大的方向发展,这对于人机交互提出了更高的要求。凭借触摸屏技术,使用者将从繁琐的按键操作逐渐过渡为利用各种手势快速和准确的实现人机交互,比如轻轻触摸、拖拽、甩或者滑动等一系列的简单手势快速的实现一些常规的命令操作。   在Android 1.6之前的版本中,需要开发者编写大量的代码才能实现某些更为复杂的Gestures功能。为了让Gestures技术可以被方便的嵌入到第三方软件中,Android 1.6 SDk中嵌入标准的Gestures API库(Package: a ...
布局技巧:合并布局     我们已经有文章向你描述如何使用<include />标签来重用和共享你的布局代码。这篇文章将向你阐述<merge />标签的使用以及如何与<include />标签互补使用。     <merge />标签用于减少View树的层次来优化Android的布局。通过看一个例子,你就能很容易的理解这个标签能解决的问题。下面的XML布局显示一个图片,并且有一个标题位于其上方。这个结构相当的简单;FrameLayout里放置了一个ImageView,其上放置了一个TextView: <FrameLayout xmlns:an ...
避免内存泄露     Android应用程序被限制在16MB的堆上运行,至少在T-Mobile G1上是这样。对于手机来说,这是很大的内存了;但对于一些开发人员来说,这算是较小的了。即使你不打算使用掉所有的内存,但是,你也应该尽可能少 ...
布局技巧:使用ViewStub     多亏了<include />标签,在Android里,很容易就能做到共享和重用UI组件。在Android开发中,很容易就能创建出复杂的UI结构,结果呢,用了很多的View,且其中的一些很少使用。针对这种情况,谢天谢地,Android还为我们提供了一个特别的构件——ViewStub,它可以使你充分享受<include />的好处而不会造成无用View的浪费。     ViewStub是一个看不见的,轻量级的View。它没有尺寸,也不会绘制以及以某种形式参与到布局中来。这意味着ViewStub去inflate以及保留在View层次中的代 ...
布局技巧:创建可重用的UI组件     Android平台提供了大量的UI构件,你可以将这些小的视觉块(构件)搭建在一起,呈现给用户复杂且有用的画面。然而,应用程序有时需要一些高级的视觉组件。为了满足这一需求,并且能高效的实现,你可以把多个标准的构件结合起来成为一个单独的、可重用的组件。     例如,你可以创建一个可重用的组件包含一个进度条和一个取消按钮,一个Panel包含两个按钮(确定和取消动作),一个Panel包含图标、标题和描述等等。简单的,你可以通过书写一个自定义的View来创建一个UI组件,但更简单的方式是仅使用XML来实现。     在Android XML布局文件里,一般,每个标 ...
布局技巧:创建高效布局   Android UI工具包提供了一些布局管理器,它们使用起来相当容易,而且,大多数的时候,你只需要使用它们最基本的特征来实现UI。   执着于基本特征的使用对于创建UI来说,往往不是最高效的。一个常见的例子就是滥用LinearLayout,它将会导致View树中的View数量激增。View——更糟的是,布局管理器——添加到应用程序里都会带来一定的消耗:初始化,布局和绘制变得更加缓慢。嵌套布局的花销尤其“昂贵”,例如,如果你嵌套了一些LinearLayout,并使用了weight参数,这会导致子元素要计算两次。   让我们看一个非常简单且常见的布局例子:一个列表项,左 ...
读取txt文件乱码   BufferedReader read = new BufferedReader(new FileReader(new File(filename)));     解决办法:   InputStreamReader isr = new InputStreamReader(new FileInputStream(file), “UTF-8“);   BufferedReader read = new BufferedReader(isr);     因为InputStreamReader和BufferedReader 都继承自Reader,而BufferedR ...
Android被设计为能运行在不同尺寸、不同像素的多种设备的系统.对于应用程序,该平台提供跨设备的、一致的环境以及拥有多种复杂的适合应用程序UI的需要呈现的屏幕.同时,为了优化不同屏幕配置上的UI设计,系统提供了APIs供开发者来控制应用程序UI的特定尺寸和像素, 该文档讲解平台提供的screens-support功能,以及如何在应用中使用Them.
1 默认设置 如果应用程序针对android1.5或更低版本进行编译,android将假定应用程序的设计目的是在经典的屏幕尺寸和分辨率下效果良好,如果将应用程序安装在一个带有较大屏幕的手机上,android会自动在兼容模式下运行应用程序,根据实际屏幕大小对所有内容进行缩放。 如果应用程序是针对android1.6及以上版本编译的,android假定可正确处理所有屏幕尺寸问题,因此不会以兼容模式运行应用程序。 2 多合一 在android中,处理多种屏幕尺寸最简单的办法是设计ui,使其能够自动根据屏幕的大小进行缩放,无需任何特定于尺寸的编码或资源。 2.1 考虑规则,而不是位置 最简单 ...
Global site tag (gtag.js) - Google Analytics