创建一个新的视觉界面
摘要:基本的View类代表一个全空的100×100像素的正方形。为了改变控件的大小和显示更炫的视觉效果,最具代表的,你需要重写onMeasure和onDraw方法。在onMeasure方法里,新的View会依据给的边界条件来计算它要占据的高度和宽度。在onDraw方法里,通过在画布上画画来创建视觉界面。接下来的代码片段给出了一个新的View类的框架代码,我们将在接下来的章节更加深入的讨论:pu...
阅读全文
posted @
2009-07-23 09:32
xirihanlin
阅读(1291)
推荐(0) 编辑
创建自定义的widget和控件
摘要:创建全新的Views给予你的权力,可以从根本上改变应用程序的外观和感觉。通过创建自己的控件,你可以创建独一无二的适合自己用户需求的UI。从一个空的画布上创建新的控件,你需要扩展View类或SurfaceView类。View类提供了一个画布对象、一些draw方法和Paint类,使用屏面图形技术来创建视觉界面。然后,你可以重写用户事件,如屏幕触摸或按键按下来提供交互性。在一些不需要极其快速的重绘和3D...
阅读全文
posted @
2009-07-22 17:55
xirihanlin
阅读(1310)
推荐(0) 编辑
创建复合控件
摘要:复合控件是原子的、可重复使用的widget,它包含多个子控件,以某种布局方式联系在一起。当你创建一个复合控件的时候,你需要定义布局,外观和它包含的Views间的相互作用。复合控件通过扩展一个ViewGroup创建。为了创建一个复合控件,你需要选择一个最适合放置子控件的layout类来扩展它,如下面的框架代码所示:public class MyCompoundView extends LinearL...
阅读全文
posted @
2009-07-22 16:57
xirihanlin
阅读(2158)
推荐(0) 编辑
定制To-Do List
摘要:第2章中的To-Do List例子使用TextView(在ListView中)显示每一个item项。你可以通过创建新的TextView扩展,重写onDraw方法来定制一个列表的外观。在这个例子里,你将创建一个新的TodoListItemView,它会让每个item项看起来像在记事本上一样。当完成时,你定制的To-Do List应该看起来和图4-2一样。图4-21. 创建一个新的TodoListIt...
阅读全文
posted @
2009-07-22 12:51
xirihanlin
阅读(1385)
推荐(0) 编辑
修改现有的View
摘要:工具箱包含许多普通需求的UI,但这些控件不一定通用。通过定制这些基本的View,你可以避免重新实现现有的逻辑,而做到为应用程序裁剪它需要的UI和功能。基于现有的控件来创建新的widget,需要创建一个新类来扩展它。如下面的代码片段所示,对TextView进行了扩展:import android.content.Context;import android.util.AttributeSet;imp...
阅读全文
posted @
2009-07-22 10:09
xirihanlin
阅读(940)
推荐(0) 编辑
创建新的Views
摘要:扩展存在的Views,创建组合的widgets,创建独一无二的新控件——这些能力能为你的特殊工作流程创建漂亮的UI。Android允许你继承现有的widget工具箱并实现你自己的View控件,为裁剪UI提供了所有的自由,从而使用户体验增加到最大极限。当你设计UI时,在自然美与实用性间平衡是很重要的。在创建自己定制的控件的威力下,带来了必须空手重新构建它们的诱惑。尽可能的经得...
阅读全文
posted @
2009-07-21 22:47
xirihanlin
阅读(524)
推荐(0) 编辑
使用Layouts
摘要:首选实现layout的方式是以外部资源方式在XML中定义。一个布局XML必须包含单一的根元素。这个根节点可以尽可能的包含layouts和Views来构建任意复杂的界面。下面的XML片段显示了一个简单的layout,其内放置了一个TextView和一个EditText控件,通过LinearLayout配置成垂直布局:<?xml version=”1.0” encodin...
阅读全文
posted @
2009-07-21 22:13
xirihanlin
阅读(1009)
推荐(0) 编辑
Layouts介绍
摘要:Layout管理器(一般称“layouts”)是ViewGroup的扩展,被设计用来控制子控件在屏幕上的位置。Layouts能相互嵌套,通过Layout管理器的结合,你可以创建任意复杂的界面。Android SDK包含一些简单的Layout,帮助你构建UI。选择layout间正确的结合来使界面易于理解和使用就取决于你咯。下面的列表包含了一些更通用的layout类:❑ Fra...
阅读全文
posted @
2009-07-21 17:56
xirihanlin
阅读(1949)
推荐(0) 编辑
Android Widget工具箱
摘要:Android提供了标准View的工具箱帮助你创建简单的界面。通过使用这些控件(修改或扩展,如果必要的话),你可以简化你的开发并且保证了应用程序间的一致性。下面的列表列出了一些很类似的控件:❑ TextView标准的只读文本label。它支持多行显示、字符串格式化和文本自动换行。❑ EditText可编辑的文本输入框。它支持多行输入和文字换行。❑ ListView一个ViewGroup,以列表的方...
阅读全文
posted @
2009-07-21 14:30
xirihanlin
阅读(1184)
推荐(0) 编辑
使用Views创建Activity的UI
摘要:一个新的Activity以一个诱惑人的空屏幕开始,在其上你可以放置自己的UI。为了设置UI,调用setContentView方法,传递View的实例(一般是一个layout)去显示。由于空屏幕不是特别的令人鼓舞,所以,绝大多数你在重写onCreate处理函数的时候都会使用setContentView来指定Activity的UI。setContentView方法既可以接受一个layout的资源ID(...
阅读全文
posted @
2009-07-21 11:40
xirihanlin
阅读(692)
推荐(0) 编辑
Views介绍
摘要:如上描述,在Android中的所有视觉组件都是继承自View,并且可以随意转换为View。你将经常看到View会转换成control或widget,就和你在开发其他的GUI程序一样。ViewGroup类是View的扩展,被设计用来容纳多个View。一般说来,ViewGroup用在构建原子的、可重复利用的组件(widget)和管理子View的布局上。ViewGroup的其他功能就是用作Layout。...
阅读全文
posted @
2009-07-21 11:18
xirihanlin
阅读(697)
推荐(0) 编辑
Android UI设计的基础
摘要:UI设计、人机交互和实用性是一个很大的话题,将不会在这本书里进行深入的讨论。话虽如此,当你创建UI时对它们有个准确无误的认识也是很重要的。Android为相似的编程名词引入了一些新的术语,将在下面的章节详细描述:❑ Views View是视觉接口元素中基本的UI类(和通常了解的control或widget)。所有的UI控件,layout类都是继承自View。❑ ViewGroupsView Gro...
阅读全文
posted @
2009-07-21 10:45
xirihanlin
阅读(2232)
推荐(0) 编辑
第4章 创建UI
摘要:为你的应用程序创建复杂的、富有直观力的UI是极为重要的。保证它们很漂亮,且很容易去使用,它们的功能性也可以考虑作为基本的设计。
阅读全文
posted @
2009-07-21 10:22
xirihanlin
阅读(957)
推荐(0) 编辑
第3章 小结
摘要:在这一章,你学习了怎样使用松散得有联系的应用程序组件来设计强大的应用程序:Activity、Service、Content Provider、Intent和Broadcast Receiver,通过应用程序manifest文件绑定在一起。你了解了Android应用程序的生命周期,了解了每个应用程序的优先级由它的进程状态决定,而进程状态又是又其内部的组件状态决定。充分利用广泛的硬件设备和国际用户群,...
阅读全文
posted @
2009-07-20 22:40
xirihanlin
阅读(396)
推荐(0) 编辑
Android Activity类
摘要:Android SDK包含了一些包装了通用UI 构件的Activity子类。一些非常有用的列在了下面:❑ MapActivity 在Activity中包装所需的资源来支持MapView构件。了解更多关于MapActivity和MapView,请到第7章。❑ ListActivity 以ListView为特性的Activity包装类,绑定数据源作为主要的UI呈现,并且暴露了列表项选择的事件处理函数。...
阅读全文
posted @
2009-07-20 22:39
xirihanlin
阅读(1009)
推荐(0) 编辑
理解Activity寿命
摘要:在Activity的full寿命(介于创建与销毁)里,会穿越一至多次的active和visible寿命。每一次的迁移会触发前面描述的事件处理函数。接下来的章节会对每一种寿命及其包含的事件做一次仔细的端视。full寿命Activity的full寿命发生在第一次调用onCreate和最后调用onDestroy。在某些情况下,可能会存在Activity进程会被终止,而没有调用onDestroy方法。使用...
阅读全文
posted @
2009-07-20 17:52
xirihanlin
阅读(1283)
推荐(0) 编辑
监视状态变化
摘要:为了保证Activity能对状态改变响应,Android提供了一系列的事件处理器。当Activity在它的full、visible和active寿命中迁移时,会触发这些处理器。图3-8就Activity状态而言,概述了这些寿命。图3-8下面的框架代码显示了一个Activity中可利用的状态变化事件的方法处理器。在每一个方法中都有一些提示,描述了在每个状态变化事件里建议采取的动作。package c...
阅读全文
posted @
2009-07-20 16:51
xirihanlin
阅读(818)
推荐(0) 编辑
Activity状态
摘要:如图3-7所示,当Activity被创建或销毁时,它们进入或退出Activity栈。当它们做这些动作时,它们就会在四种可能的状态间迁移:❑ Active 当Activity在栈的顶端时,它是可见的,有焦点的前台Activity,用来响应用户的输入。Android会不惜一切代价来尝试保证它的活跃性,需要的话它会杀死栈中更靠下的Activity来保证Active Activity需要的资源。当另一个A...
阅读全文
posted @
2009-07-20 16:08
xirihanlin
阅读(2698)
推荐(0) 编辑
Activity栈
摘要:每个Activity的状态由它在Activity栈(一个后进先出容纳所有运行的Activity的容器)中的位置决定。当一个新的Activity启动时,当前前台屏幕进入到栈的顶端。当用户使用Back按钮导航回来的时候,或者前台的Activity结束时,下一个Activity上移变成active状态。这个过程在图3-7中演示。和前面章节的描述一样,应用程序的优先级受它的高优先级Activity影响。A...
阅读全文
posted @
2009-07-20 15:30
xirihanlin
阅读(1526)
推荐(0) 编辑
Activity生命周期
摘要:对Activity生命周期很好的理解是极为重要的,它关于应用程序无瑕疵的用户体验和正确的资源管理。和之前解释的一样,Android应用程序不能控制自己进程的寿命;Android运行时管理着每一个应用程序的进程,也顺道管理了应用程序中的Activity。当运行时终止和管理Activity的进程时,Activity的状态有助于决定父应用程序的优先级。应用程序的优先级,反过来又影响着运行时终止应用程序和...
阅读全文
posted @
2009-07-20 15:09
xirihanlin
阅读(618)
推荐(0) 编辑