- 浏览: 81933 次
- 性别:
- 来自: 郑州
最新评论
-
老梦a:
...怎么用的呢,我把js和css都引入了,但是用的时候没起作 ...
在Ext的grid里实现带radio单选功能的gridList -
Mydwr:
我也正在找要实现这样的效果
在Ext的grid里实现带radio单选功能的gridList -
kkgoing:
运行不报错,但是还是有问题,index页面打不开,测试的时候插 ...
昨天整理的基于Annotation的MVC框架SSH示例 -
kjsoloho:
感谢你的肺腑之言
价值是如何放大的 -
kjsoloho:
希望继续,期待
《Android程序员指南》翻译暂停,望见谅
还是Hello World!
本节中,你会创建另一个Hello World!Android应用。然而这次你是用代码编写UI,而不是用xml文件——实际上你会做更多的工作。第一步是移除main.xml中的TextView代码。下面是TextView的代码部分。删除它,基本上使你的应用变成一个空壳。
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, HelloWorldText"
/>
在你移除TextView代码后,你的main.xml文件看起来是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</LinearLayout>
现在你有了一个干净的main.xml文件,也就是一个干净的应用空壳,你可以添加在屏幕上显示“Hello Worldwide!”的代码。打开HelloWorldText.java文件,移除下面的行:
setContentView(R.layout.main);
本行用setContentView()函数将main.xml文件提到屏幕。因为你不用main.xml文件定义你的TextView,你也不会让它出现在你的视野。相反,你会通过代码构建TextView。
下一步是导入从android.widget中导入TextView包。这会让你访问TextView,并让借助它创建你的示例。将这段代码放到HelloWorldText.java文件的顶部, import声明是
import android.widget.TextView;
现在创建一个TextView实例。通过创建TextView实例,你会用它将文本输出到屏幕上而不是直接修改main.xml。在onCreate()声明触发之后,放上下面的代码:
TextView HelloWorldTextView = new TextView(this);
上面一行通过设定一个新的TextView,创建了名为HelloWorldTextView的TextView实例,然后实例化了HelloWorldTextView,新的TextView在这里被实例化了。
现在定义了TextView,你可以在上面添加文本了。下面一行代码就在TextView上设置了“Hello World!”文本。
HelloWorldTextView.setText("Hello World!");
本行设置了你的TextView中的文本。setText()函数让给TextView指定一个字符串。
你已经创建了包含你想要展示的信息的TextView。然而,仅仅在TextView上传递“Hello World!”并不会显示到屏幕上。如前面提到的,你需要设定ContentView向屏幕展示内容。你必须用下面的代码设定TextView内容,并将它展示到屏幕上。
setContentView(HelloWorldTextView);
研究该行,你会发现你将TextView传递给了setContentView。前三行代码组成了你的Hello World!应用。你创建一个TextView,为它指定文本,然后将它设置到屏幕上。从各方面来看,这一点儿都不复杂。
你的HelloWorldText.java文件的完整内容应该如下:
package android.programmers.guide;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloWorldText extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
/** Hello World JFD */
/** BEGIN */
/** Create TextView */
TextView HelloWorldTextView = new TextView(this);
/** Set text to Hello World */
HelloWorldTextView.setText("Hello World!");
/** Set ContentView to TextView */
setContentView(HelloWorldTextView);
/** END */
}
}
现在在Android模拟器中,编译并运行你的新Hello World!应用。选择 Run|Run或者按CTRL-F11组合键在Android模拟器中启动应用。下面的插图展示了你的Hello World!应用的结果。
你已经创建了你的第一个完整的Android Activity。这个小项目展示了一个相当普通的Hello World!应用的执行。你为活动的内容视图设定一个TextView,然后向Android模拟器中的手机屏幕显示“Hello World!”信息。下面一节展示一种不同的利用图片执行Hello World!的方式。
使用图像的Hello World!
本节,你会利用Hello World!应用,进一步了解一种相对平常的编程实践:显示图片。没有图形展示,现代的计算机显示器会变得非常无趣。这些图形显示中心能够往屏幕上发送图像。
五年前,手机显示图片非常麻烦。作为现代的PC用户,处理图片是我们习以为常的事情。我们每天都看各种类型的窗口,却不会想到他们其实是发送到屏幕上的图片而已。这个版本的Hello World!应用会在屏幕上显示一个图片来表示“Hello World!”。
对于该应用,利用新建Android项目向导来创建一个新项目,并命名为HelloWorldImage,如下所示:
应用项目创建之后,浏览并从main.xml中移除TextView代码,保证你有一个空项目。如果你不移除这些代码,最后还会是一个基于文本的Hello World!项目。
在你开始写代码之前,你需要一个展示的图片。在图形程序中创建一个小图片。简单起见,我选择Microsoft Paint,但是任何程序都能够为你提供你需要的图片。我用的图片是:
将你的图片命名为helloworld.png,并把它保存到%workspace%/HelloWorldImage/res/
drawable目录。
在你将图片复制到正确的目录之后,刷新项目。helloworld.png图片就会出现在你的项目视图中,在drawable目录,如下所示:
打开R.java,浏览它的代码。Eclipse已经为你的helloworld.png增加了一个指针。你的R.java文件类似这样:
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package android_programmers_guide.HelloWorldImage;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int helloworld=0x7f020000;
public static final int icon=0x7f020001;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
}
}
有了一个可以起步的空应用和一个你可以处理的图片,你就可以开始添加你的代码了。你可以从两方面浏览这个应用:基于XML的UI和基于代码的UI。
基于代码UI的 Hello World!
假设你能理解HelloWorldText的解决方案,该版本的Helloworld!会非常熟悉。开始你需要导入展示图片的包。而文本显示使用的是TextView,图片显示使用的是ImageView。一次你需要导入ImageView包。如同TextView,ImageView也包含在android.widgets:
import android.widgets.ImageView;
导入包后,你可以创建你的ImageView应用然后显示到屏幕上。实例化ImageView与实例化TextView相同;创建一个ImageView实例,使用方法如下:
ImageView HelloWorldImageView = new ImageView(this);
下一行是ImageView与TextView的不同之处。该步骤包含了设定你想显示的内容。在TextView的例子中,你使用setText()将TextView的文本设置成“Hello World!”。虽然ImageView与TextView都是从View衍生而来,但他们仍然不同,因此需要不同的方法。很显然,你不会在ImageView中使用setText()。你需要用setImageResource(),来在你的ImageView中设定图片。如下所示,从R.java给setImageResource()的手柄传递helloworld.png。(手柄的语法就是R.drawable.helloworld):
HelloWorldImageView.setImageResource(R.drawable.helloworld);
最后,你必须设定ContentView才能将图片输出到屏幕。如图你对TextView的做法一样,给ContentView传递ImageView。ContentView的任务就是将对象输出到屏幕。
setContentView(HelloWorldImageView);
你的HelloWorldImage.java的最终文件如同这样:
package android_programmers_guide.HelloWorldImage;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
public class HelloWorldImage extends Activity {
/** Called when the activity is first created. */
Chapter 5: Application: Hello World! 77
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
/**Hello World Image JFD*/
/**BEGIN */
/**Create the ImageView */
ImageView HelloWorldImageView = new ImageView(this);
/**Set the ImageView to helloworld.png */
HelloWorldImageView.setImageResource(R.drawable.helloworld);
/**Set the ContentView to the ImageView */
setContentView(HelloWorldImageView);
/**END */
}
}
编译HelloWorldImage,并在Android模拟器中运行。你的应用应该像下面的图例中所示:
下一节,你还会展示helloworld.png,但是这次是使用XML而不是代码。
基于XML UI的 Hello World!
本节为你区分基于XML的UI和基于代码的UI展示图片的流程,进行了很好的比较。就像你看到的一样,使用main.xml向屏幕发送图片的流程,和使用基于代码的UI,需要的代码量大体相当。然而这两种流程的语法不同。
通过同一个项目的最后一个例子,从HelloWorldImage.java文件中移除TextView代码。空文件此处所示:
package android_programmers_guide.HelloWorldImage;
import android.app.Activity;
import android.os.Bundle;
public class HelloWorldImage extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
}
}
现在你有了个干净的面板,移到main.xml中。你需要添加一个ImageView的定义。从给你的main.xml文件添加空的ImageView标签开始:
<ImageView
/>
你需要编辑ImageView的四个属性:android:id、android:layout_width、android:layout_height、和android:src。你把这些属性放到标签中,他们会控制标签在屏幕上的现实方式。
android:id属性是设置ImageView的标识。android:id属性用来和你的代码中的ImageView关联。使用@+id/<name>语法给ImageView配置一个可以在以后使用R.layout.imageView纠正的标识:
android:id="@+id/imageview"
这一行是插入一个自动生成的id,@+id,插入到在名字imageview下的R.java文件。
下面两个你必须定义的属性是:layout_width和layout_height。这些属性控制图片填充屏幕的方式。当为这些属性分配值时,有两个选项可以选择。fill_content值在可见范围内使图片填充屏幕。wrap_content值保持图片的原始大小,可能处理时会失去一些图片精确度。例如,使用wrap_content:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
最后的属性你需要分配的是相对最重要的:android:src。这个属性指定你想在视图中显示的图片。例如,将该属性指定为drawable/helloworld图片:
android:src="@drawable/helloworld"
你的整个ImageView标签应该像这样:
<ImageView android:id="@+id/imageview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/helloworld"
/>
最后,在图片显示到视图之前,你必须将main.xml传递到HelloWorldImage.java中的setContentView。
setContentView(R.layout.main);
编译并运行HelloWorldImage。结果如下面的插图所示:
在你结束本章前,再做一件事。回到main.xml,将层从warp_content变成fill_content。当你结束时,你的main.xml文件会像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView android:id="@+id/imageview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/helloworld"
/>
</LinearLayout>
再次运行应用,看看wrap_content和fill_content之间的差别。你的新应用运行时,应该如下所示:
下一节从命令行编程出发,会对Hello World!应用做进一步的研究。
专家答疑
问:Android是否像其它大部分API一样,拥有一个label或者LabelView吗?
答:没有。所有文本都是通过TextView定义的。你可以像一些人一样,创建一个自定义的如同label功能的View,并将其命名为LabelView!
问:通过<application>.java来创建视图比main.xml有优势吗?
答:当在用一个创建其它文件时没有记载或过程文件的时候,就会有一个关键优势:使用main.xml,你会有大量的预定义的Activity视图。然后再你的代码中,你可以根据所需从一个视图跳到另一个视图,而不用人工编码创建。
发表评论
-
第八章 列表、菜单以及其它视图——续
2010-03-19 09:00 1453AndroidViews.java 创建这个Activity ... -
第八章 列表、菜单以及其它视图——继
2010-03-19 08:55 1795本节展示radiogroup.xml的全部代码。根据章节前面的 ... -
第八章 列表、菜单以及其它视图——后
2010-03-19 08:50 1429AndroidViews.java 创建这个Activity ... -
第八章 列表、菜单以及其它视图——下
2010-03-19 08:42 1779这里是你的完整的AndroidManifest.xml项目文件 ... -
第八章 列表、菜单以及其它视图——中
2010-03-19 08:39 1659这段代码有个问题:onOptionsItemSelected( ... -
第八章 列表、菜单以及其它视图——上
2010-03-19 08:31 2595关键技能和概念 l 构建Activity l ... -
第七章 使用Intents与Phone Dialer——下
2010-03-02 09:23 1701实现EditText视图 你需要 ... -
第七章 使用Intents与Phone Dialer——中
2010-03-02 09:16 2671为给你的Activity分配正确的权限,你首先需要知道你需要分 ... -
第七章 使用Intents与Phone Dialer——上
2010-03-02 09:07 3821第一章 使用Intents与Phone Dialer ... -
第六章 使用命令行工具与Android模拟器——下
2010-02-25 16:49 6156由于你在Android服务端安放了应用,你就可以删除它。使用命 ... -
第六章 使用命令行工具与Android模拟器——中
2010-02-25 16:38 5409<arg value="install&quo ... -
第六章 使用命令行工具与Android模拟器——上
2010-02-25 16:25 4576关键技能和概念 l 使用Android SDK ... -
第五章 应用:Hello World!——上
2010-02-24 09:00 2378关键技能和概念 l ... -
第四章 探索Android SDK
2010-02-21 22:27 6208关键技能和概念 l ... -
第三章 下载、安装Android SDK
2010-02-20 16:19 6708关键技能和概念 l ... -
第二章 下载、安装Eclipse
2010-02-20 11:28 5366关键技能和概念 l 选择一个开发环境 l ... -
第一章 Android是什么?
2010-02-20 11:17 2073关键技能和概念 l 嵌入式编程的历史 l ... -
致谢与序言
2010-02-05 16:12 1333致谢 感谢所有参与编写这本书的人,我的经纪 ... -
为什么要翻译《Android A Programmer's Guide》——《Android程序员指南》
2010-02-05 16:08 2893学习Android编程,却发现这些方面的好书很少,于是 ...
相关推荐
"Hello, World!" 是编程世界的传统起点,是...尽管每种语言的语法和实现方式不同,但目标都是相同的——在屏幕上显示 "Hello, World!"。学习这些示例有助于理解编程语言的基础概念,包括变量定义、输出功能和控制流程。
第五章:组装积木 —— 介绍了如何使用 Qt 的容器类管理用户界面组件。 第六章:组装丰富的积木! —— 介绍了如何使用 Qt 的布局管理器和容器类创建复杂的用户界面。 第七章:一个事物领导另一个 —— 介绍了如何...
《Hello World! 计算机编程入门指南》一书旨在为儿童和其他初学者提供一个轻松、有趣且易于理解的计算机编程学习平台。本书由Warren Sande与Carter Sande共同编写,Manning出版社出版,是一本PDF格式的电子书籍。在...
在本文中,我们将深入探讨如何使用MCS-51系列的单片机——MTC89C51来控制LCD1602显示器,以显示特定的文本内容。LCD1602是一种常见的液晶显示屏,通常用于嵌入式系统中的数据显示,具有16列和2行的显示能力。我们将...
本课程的核心是通过“Hello World”实例来引导初学者理解Vue的基本概念和设计思想。 首先,让我们从“Hello World”程序开始。这是每个开发者学习新语言或框架时的入门步骤。在Vue中,创建“Hello World”程序非常...
- 字符串常量:用双引号括起,例如"HelloWorld"。 - 布尔常量:true和false。 - null常量:表示对象引用为空。 6. **变量**: - 变量是存储数据的内存单元,如`int x = 0, y;`定义了两个变量x和y。 - 数据类型...
在编程世界中,"Hello World!" 是初学者入门时最常遇到的第一个程序,它标志着编程旅程的开始。本文将深入探讨这些常见编程语言——Python、Java、C、Matlab、JavaScript、PHP 和 Swift,如何通过简单的代码实现这个...
标题中的"HelloWorldApp_hellowword_world_"暗示了一个经典的编程入门示例——“Hello, World!”程序。这个程序通常在初学者接触新编程语言时使用,以展示如何编译、运行一个简单的程序并打印出“Hello, World!”这...
- **第5堂课:流程控制** —— 介绍条件语句(if-else)和循环语句(for、while、do-while)的使用。 3. **函数** - **第6堂课:函数定义与调用** —— 解释函数的作用、定义方法,以及参数传递机制。 - **第7堂...
### Fortran 入门教程之Hello world ...至此,您已经成功编写、编译并运行了第一个Fortran程序——“Hello, World!”。这不仅标志着您对Fortran的基本了解,也为进一步学习和探索更复杂的程序打下了坚实的基础。
// 输出:"HelloWorld!" ``` 这里的正则表达式`[\s\n]`匹配任何空白字符(包括空格和换行符),`/g`标志表示全局匹配。 #### 四、其他常见用法 ##### 1. 使用split和join去除空格 除了使用`replace`方法外,还...
至于压缩包子文件的文件名称列表——"package-helloworld-master",这很可能是一个Git仓库的主分支(master)的克隆。在GitHub等代码托管平台上,"master"通常是默认的分支,包含了项目的最新稳定代码。因此,下载的...
Proteus7.8+Keil5——仿真第一个程序Hello World下载Proteus7.8和Keil5这里我采用的是C代码运行结果如下`注意`:“`Proteus里面的C51单片机的晶振要设置成11.0592,否则Virtual Terminal会运行不出结果“` ...
本文是“Linux学习系列”的第二篇,旨在深入探讨如何在Linux环境下运行一个经典的入门程序——“Hello World”。第一篇文章《Linux学习系列一:开发环境搭建》受到了广泛关注,激发了许多读者的兴趣。本篇将继续沿着...
在命令行中输入`javac HelloWorld.java`,如果没有任何错误,则会生成一个名为`HelloWorld.class`的字节码文件。 3. **运行程序**:使用Java解释器`java`运行编译后的字节码文件。在命令行中输入`java HelloWorld`,...
在编程世界中,"Hello, World!"程序是每个新手程序员的第一个里程碑。Kotlin,作为一款由JetBrains开发的现代、类型安全的编程语言,已经逐渐成为Android开发的首选语言。这个名为"helloworldkotlin"的项目,正如其...
#### 第5章:链接 - **链接的概念与作用**: - 链接是将多个目标文件和库文件合并为一个可执行文件的过程。 - 这一过程还负责解决符号引用等问题。 - **在Ubuntu下链接的命令**: - 使用命令`gcc hello.o -o ...
在这个第一部分中,作者可能引导读者通过编写第一个简单的程序——"Hello World!"来介绍该平台。 描述中的“使用C++和汇编语言对Microchip PIC32MM单片机进行编程”表明教程涵盖了两种编程语言:C++和汇编。C++是一...
**第五章:Android基本程序单元Activity** - **Activity生命周期**:详解Activity的各个生命周期状态及其回调函数。 - **启动模式**:解释四种不同的启动模式(standard、singleTop、singleTask、singleInstance)...
标题中的"COMP107x: Hello World-Android应用程序"是指一个在线课程,该课程主要教授如何开发Android平台上的基础应用程序。"Hello World"通常是一个编程初学者接触的第一个程序,它标志着新学习者向编程世界的初步...