用户界面控件:用户界面部件和视图类外文翻译资料

 2022-11-08 18:40:49

Android UI Widgets:

User Interface Widgets and the View Class

In this chapter, we will learn more about the Android View class, as well as continuing our exploration of the Android Application development framework that was created for us by Eclipse ADT in Chapter 2, using the New Android Application series of dialogs that we recently utilized.

Now that we have a better foundation for understanding how those ViewGroup layout containers contain Android View UI widgets, and how to use XML file UI layout definitions to add UI elements using tags and configure those UI elements using parameters, we can concentrate our efforts in this chapter on learning about the View Superclass and all the advanced User Interface Design features that it currently supports.

View and ViewGroup instantiated objects are both complicated for different reasons. ViewGroup layout container objects are complicated because device screens vary in size and in shape, and thus to put together a design that works well across different display sizes and shapes can be an exceptional challenge. In fact, we have an entire chapter on this challenge coming up!

View widgets are a complicated topic because they have many attributes, or properties, as you will see in this chapter. The properties are set using parameters, via an XML definition in a file in the /res/layout subfolder. Not only do View UI elements have a ton of properties, but they also have event listeners that allow them to respond to user interaction, so we have a lot to cover in this chapter, between looking at all the key View object properties, and then learning how to implement your event listener so that your View object UI widget can respond to the userrsquo;s interaction with it.

The Android View Class: The Superclass for UI Widgets

If the foundation for our UI designs in Android OS is an Android ViewGroup layout container, then the structure that is built on that foundation is comprised of UI element widgets that are based on the Android View class.

ViewGroup layout containers may hold, structure, organize, and reorient the View UI widgets, but it is those View subclass UI widgets themselves which are actually used by your users to interface with your Android application functionality and ultimately create your application UX (user experience).

The View class is itself a subclass of the Java Languagersquo;s Object class, I like to call that class the Masterclass, because ultimately, everything in Java is an object! Thus, this View Superclass is about as high on the Java food chain as a class can get, its class hierarchy can be seen as follows: java.lang.Object gt; android.view.View

The View Superclass is primarily used in Android to create our UI elements that are called widgets in Android.

As we learned in the previous chapter, this View Superclass was even used to create the ViewGroup class, because the properties that are a part of this View class need to be inherited by the ViewGroup subclass, as well as by all the different widget subclasses.

There are so many UI widget subclasses that are subclassed from this View Superclass, that there is an entire package in Android chock full of them.

This is called the android.widget package, and we will be using it a lot in our Java code, via import statements that are used to declare our widgets and other Android classes for usage in our application Java program logic.

The View class has 11 direct subclasses, which wersquo;ll take a look at in the next section, as well as 70 indirect subclasses, many of which we will implement during this book, as we learn how to utilize Android layout containers (ViewGroup subclasses), such as the RelativeLayout container, which we already had exposure to in the previous chapter on layout containers.

The View class is part of an android.view package, which collects subclasses that expose user interface element classes that handle screen layout and UI elements and their interaction with your applicationrsquo;s user.

Android View Direct Subclasses:

Key Widgets and Utilities

Letrsquo;s take a look at some of the direct subclasses of the View class. Most of the 11 direct subclasses are what Irsquo;d term “core” UI design widgets or utilities, so I think yoursquo;ll find this section interesting. We will get a chance to use all these during the book, but since this chapter is to give you a comprehensive overview of View widgets, this will give you some perspective as to how far underneath View your widgets are subclassed. The widgets wersquo;ll talk about in this section are thus directly underneath the View class, and all others are at least two subclass levels under View.

Letrsquo;s start with the two direct subclass widgets that we used in the previous chapter, AnalogClock and TextView. Obviously, TextView is one of your core UI elements as Text is used more than any other element in an application.

AnalogClock on the other hand is one of the least used core UI elements, and is quite specialized as it is a full working analog clock simulation. It is a fun UI widget to be sure. It is quite robust and allows you to “skin” the clock in different ways with image graphics and color values. Thatrsquo;s why I included it in a previous chapter, as I am trying to cover as many widgets in this book as I can, and we wonrsquo;t have a lot of time to fool around with the fun ones and still get you up to a Pro Android UI Design proficiency.

Another mission critical direct subclass of View is your ImageView widget, which is used to hold and display digital image assets, which if yoursquo;re in the graphics design business is going to be one of your favorite widgets!

ImageView and its ImageButton subclass, which means that an ImageButton UI widget is an indirect subclass of this View superclass, are used to display custom digital image and animation content for your appl

剩余内容已隐藏,支付完成后下载完整资料


用户界面控件:用户界面部件和视图类

在本章中,我们将更多地了解Android View类,以及继续探索第二章中Eclipse ADT为我们创建的Android应用程序开发框架,使用我们最近使用的新Android应用程序系列对话框 。

现在我们有了一个更好的基础,了解这些ViewGroup布局容器如何包含Android视图UI小部件,以及如何使用XML文件UI布局定义添加UI元素使用标签和配置这些UI元素使用参数,我们可以集中我们的努力在这个章节,了解视图超类及其当前支持的所有高级用户界面设计功能。

View和ViewGroup实例化对象由于不同的原因而复杂。 ViewGroup布局容器对象很复杂,因为设备屏幕的大小和形状各不相同,因此将不同显示器大小和形状的设计放在一起可能是一个特殊的挑战。 事实上,我们有一个关于这个挑战的整章!

查看小部件是一个复杂的主题,因为它们有很多属性或属性,如你在本章中所看到的。属性使用参数设置,通过/ res / layout子文件夹中的文件中的XML定义。 View UI元素不仅具有大量属性,而且还具有允许它们响应用户交互的事件侦听器,因此我们在本章中介绍了很多内容,包括查看所有关键的View对象属性,然后学习如何实现你的事件侦听器,以便你的View对象UI窗口小部件可以响应用户与它的交互。

Android视图类:UI小部件的超类

如果我们在Android操作系统中的UI设计的基础是一个Android ViewGroup布局容器,那么在该基础上构建的结构包含基于Android View类的UI元素小部件。

ViewGroup布局容器可以保存,结构化,组织和重定向View UI小部件,但是这些View子类UI小部件本身实际上由你的用户使用来与你的Android应用程序功能接口,并最终创建你的应用程序UX(用户体验) 。

View类本身是Java语言的Object类的子类,我喜欢将该类称为Masterclass,因为最终,Java中的一切都是一个对象!因此,这个View Superclass就像一个类可以得到的Java食物链一样高,它的类层次结构可以看出如下:java.lang.Objectgt; android.view.View

视图超类主要用于在Android中创建我们的UI元素,称为Android中的小部件。

正如我们在上一章中学到的,这个View Superclass甚至用于创建ViewGroup类,因为作为这个View类的一部分的属性需要被ViewGroup子类继承,以及被所有不同的widget子类继承。

有这么多UI子类的子类从这个View Superclass子类化,有一个完整的包在Android chock充满他们。

这被称为android.widget包,我们将在我们的Java代码中使用它,通过import语句,用于声明我们的窗口小部件和其他Android类,以在我们的应用程序Java程序逻辑中使用。

View类有11个直接子类,我们将在下一部分中查看,以及70个间接子类,其中许多将在本书中实现,因为我们学习如何利用Android布局容器(ViewGroup子类),例如RelativeLayout容器,我们已经在上一章中讨论了布局容器。

View类是android.view包的一部分,它收集子类,显示处理屏幕布局和UI元素的用户界面元素类以及它们与应用程序用户的交互。

Android视图直接子类:关键小部件和实用程序

让我们来看看View类的一些直接子类。 11个直接子类中的大多数是我所说的“核心”UI设计小部件或实用程序,所以我认为你会发现这一节很有趣。我们将有机会在本书中使用所有这些,但由于本章是给你一个全面的View小部件的概述,这将给你一些透视看下你的小部件是子类的。我们将在本节中讨论的部件直接在View类下面,所有其他部件在View下至少有两个子类。

让我们从上一章中使用的两个直接子类小部件开始,即AnalogClock和TextView。显然,TextView是你的核心UI元素之一,因为Text比应用程序中的任何其他元素使用更多。

另一方面,AnalogClock是最少使用的核心UI元素之一,并且是相当专业的,因为它是一个完整的工作模拟时钟模拟。这是一个有趣的UI小部件是肯定的。它是相当强大,允许你以不同的方式与图像图形和颜色值“皮肤”时钟。这就是为什么我把它包含在前一章,因为我试图覆盖尽可能多的小部件在这本书,我们不会有很多时间来愚弄有趣的,仍然让你达到一个专业的Android UI设计熟练程度。

View的另一个关键的直接子类是你的ImageView控件,用于保存和显示数字图像资源,如果你在图形设计业务,这将是你最喜欢的小部件之一!

ImageView和它的ImageButton子类,这意味着ImageButton UI窗口部件是此View超类的一个间接子类,用于为应用程序UI设计显示自定义数字图像和动画内容。

我们已经花了整整一章已经在ViewGroup,而如你所知的另一个直接子类,用于创建布局容器。

空间直接子类是实用程序子类之一,不,它不创建星空(不幸的是),而是可以用来创建“间隔”,这允许你微调UI设计间距,并可以在你的UI布局设计中使用间隙,以控制它们的呈现方式。

另一个实用子类是ProgressBar直接子类,正如其名字所示,它用于在应用程序中实现进度条。有一个确定的进度条,它是一个实际条,并显示实际进度,和一个不确定的纺车进度条选项。

一个更复杂的实用程序是KeyboardView直接子类,你可能已经猜到,在屏幕上呈现一个虚拟键盘供用户进行文本输入。这对于触摸屏特别有用,因为大多数触摸屏智能手机和平板电脑这些天没有键盘。

最后两个直接子类我要提到这里是显着更先进的,SurfaceView和TextureView。 TextureView直接子类本质上是一个硬件加速的SurfaceView,所以,我将重点放在SurfaceView直接子类,因为它支持在Android设备上,而不仅仅是那些具有硬件(3D或视频)加速功能。

SurfaceView类更适合专业的Android图形书,但足以说这个直接子类为两个重要的间接子类提供了基础。一个是VideoView,它处理Android中的数字视频,另一个是GLSurfaceView,它处理Android的3D OpenGL渲染管道。这两个直接子类都非常适合高级图形应用程序,包括实时,OpenGL 3D和流(或在App APK文件内捕获)数字视频资产。

使用视图属性:重要参数

在View类中定义了65个XML参数,可以由它的任何子类继承。显然,我不能在这里详细介绍他们中的每一个,但我们将在本节中讨论几个最常用的参数,并说明为什么每个都很重要。

其中一些关键参数你已经在上一章中使用过,例如android:id给你的标签(对象)一个名字。我说的(对象)的原因是,正如我们将在本章后面看到的,当我们进入Java端的事情时,XML定义是“inflated”,这意味着Java方法采用标签和参数并实例化对象,并基于XML定义在这些对象中设置属性。

我们还使用了android:background,这是另一个非常有用的参数,用于在View对象窗口小部件中实现颜色,图像或动画。与背景参数密切相关的参数是android:alpha参数,它为整个窗口部件View对象设置alpha(透明度)值。如果你想淡出你的窗口部件,这个参数也可以是动画的。如果你只是想在你的背景透明度,然后使用八个地方#AARRGGBB十六进制值,其中前两个槽是alpha值,#00FFFFFF是透明的(白色)和#FFFFFFFF是不透明的(我在这里使用白色值,在其他六个槽)。

我们还查看了android:padding参数,它在widget(View)容器中添加了空格,正如我们在上一章中所展示的。

我们还没有看到的一些View参数,但我们将在本书中,包括android:rotation参数,它可以用于围绕其中心(pivot)点旋转视图,以及旋转参数定位每个X和Y轴。这些是android:rotationX和android:rotationY。这些参数与Android动画类旋转变换匹配,像alpha,scale和translation参数一样。

这四个参数与上一章中讨论的LayoutAnimationController类一起使用。

现在让我们来看看这个View类中的其他动画兼容的参数。有android:scaleX和android:scaleY,它允许你使用浮点(浮点)数据值0.0(零百分比)到1.0(100%)缩放任何窗口视图对象。

最后,还有android:translateX或android:translateY参数,它们允许你在2D屏幕维度中的任何位置翻译或移动UI窗口部件。现在我们已经查看了所有View属性或属性,它们可以在XML中设置为参数,并且可以通过Android Animation类访问以执行过程动画。

我之前提到了旋转或枢轴点,这也可以用于倾斜缩放操作。这是通过使用android:transformPivotX和android:transformPivotY参数设置的。在2D空间中,该枢轴点将具有两个坐标,因此这两个参数通常一起使用。

除了android:alpha参数,还有一个android:visibility参数,它有三个常量,它支持:VISIBLE,INVISIBLE和GONE。因此,你将需要使用android:alpha创建淡出或淡入效果,以及android:visibility参数来打开(VISIBLE)或关闭(INVISIBLE)UI部件。

如果你想知道GONE参数是什么,它告诉布局容器来计算布局容器中布局定位的UI窗口部件,就好像使用android:visibility =“GONE”设置的窗口部件不在那里,而INVISIBLE参数告诉布局容器,View对象占用其空间,但是不可见,也就是说,它的alpha;值可以被认为是零,或者是完全透明的。

还有android:scrollX,android:scrollY和一个android:scrollbars参数,为支持滚动的View小部件打开和关闭滚动条。还有十个android:scrollbar配置参数,如android:scrollbarSize和android:scrollbarStyle。在本书的这一点上,我们真的不需要进入滚动条,所以我不打算在这里详细介绍。

还有七个参数与控制View对象窗口小部件的焦点相关,两个是android:focusable和五个android:nextFocus参数,我们将在下一部分关于这个焦点,以及它是什么,以及为什么它对我们的View对象widget子类很重要。

其余的参数主要是用于保持View对象打开(用于视频播放)或启用一个硬件功能的特殊参数。如果你想详细浏览所有65个XML参数,你可以在Android开发网站上的View类信息摘要页面上找到它们,该页面位于以下URL:

http://developer.android.com/reference/android/view/View.html

接下来,我们将讨论UI部件焦点的概念,这是任何UI设计工作流中的关键概念,无论是Android还是HTML5或C#或C 。用户如何从一个UI元素进入下一个UI元素非常重要。

视图的焦点:哪个UI Widget有用户的注意

UI元素或View对象窗口小部件的焦点只是一个“状态”。如果UI元素正在被用户主动使用,那么它被称为具有焦点。如果UI元素状态为空闲,因为你的其他UI元素中的一个具有用户的焦点,则该UI元素被称为已失去焦点。

作为一个软件功能,在XML标记和Java代码中控制焦点的能力对于你的用户体验(UX)设计很重要,因为你的软件(代码)可以准确地告诉用户在任何时候的焦点在哪里,并对如果你需要这样做,或选择这样做。

这通常通过使用事件监听器来完成,我们将在下一节中介绍。这个代码“监听”用于view.onfocuschangelistener( )方法及其调用,这将在视图对象小部件得到焦点或失去焦点时发生。。一旦OnFocusChangeListener()方法被调用,其中写的Java代码然后被执行。

在OnFocusChangeListener()方法中写入的代码将在应用程序中出现focusChange事件时执行,这表示某个UI元素View窗口小部件的焦点已更改。

OnFocusChangeListener()是唯一的焦点相关的事件侦听器;其他大多数处理用户输入类型,例如键输入或点击输入或触摸输入。焦点更改监听器适用于其中的每一个,因为无论你使用什么方法将硬件输入(接口)与你的应用程序联系起来,你的用户总是要以一种或其他方式从一个UI元素进行(改变焦点)到下一个。

最基本的焦点相关的XML参数是android:focusable如果设置为一个“真”值,那么View小部件将能够获得焦点。所以在你的UI部件内部,如果你想要它接收焦点,当用户访问它,你会设置参数android:focusable =“true”,那么它会生成focusChange事件,因为它会是可聚焦的。

Android通常自动确定(或作为默认)UI小部件是否可以关注。显然,数据字段UI小部件,

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[138843],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。