Tag: eclipse

  • Hello, My Android(三)

    界面设计完成后,我要开始为那个Button的单击事件设计响应函数。

    在Android中,事件的设计也很诡异。我们先来看代码:

    (more…)

  • Hello, My Android(二)

    接下来,我们继续看属于LinearLayout的子控件的两个控件:TextView和Button。有关Android界面中可以用到的Widget有哪些我会在以后再描述。

    ===================

    (more…)

  • Hello, My Android!(一)

    我想,部分是受到了山寨机也即将支持Android的鼓舞,最近我下载了一套Eclipse Ganymede+Android SDK,开始看看在这套著名的API下开发Android应用会是怎样的体验。 不是说以前没有尝试过开发手机下的应用。比如,在我04年用Palm的时候,06年用WM的时候,08年用Symbian的时候……不过都可耻滴放弃了:

    • 放弃Palm是因为它的开发理念和我习惯的事件驱动相差实在太远;
    • 放弃WM是因为那时(包括现在)很BSMS;
    • 放弃Symbian是因为我有一个朋友开的公司将Symbian开发做到了极致,我肯定超不过他的水平……

    好吧,让我来看看Android……

    ===================

    当然,如何设置ADT(Android Eclipse Plugin)我就不说了(什么,你不知道怎么玩Eclipse?这个这个……);怎么用Wizard来创建基本的框架我也不多说了。我只说说接下来我做的事情。 首先,我先创建了一个Run的配置,然后就开始运行。Android模拟器顺利的启动了,新创建的项目也顺利执行。然后我开始看整个项目的结构:

    HelloMyAndroid
    ├─assets
    ├─bin
    │  └─com
    │      └─android
    │          └─tr
    │              └─testcase
    ├─res
    │  ├─drawable
    │  ├─layout
    │  └─values
    └─src
        └─com
            └─android
                └─tr
                    └─testcase

    在这个结构中:

    • assets目录目前是空的,我也暂时先不管这个目录派什么用场。不过从英文名可以推测是放置一些“有用的东西”;
    • bin目录下有三个文件:classes.dex, HelloMyAndroid.apk, resources.ap_。根据说明,这个apk文件就是以后安装应用程序到手机上时需要使用的打包文件;
    • bin目录下还有一个很深的目录结构,它其实代表了我创建这个程序时所选择的包:com.android.tr.testcase。在testcase目录下是编译好的class文件。
    • res目录下给出了Android程序中最常用的三种资源:drawable,layout,values。在drawable目录中只有一个icon.png,这个图标会成为我们程序的图标;layout目录中目前只有一个main.xml,在这个xml文件中,描述了程序界面——应该说,用xml描述界面没有什么不对的,但是如果没有一个GUI来辅助用户设计界面是8HD的;values目录中有一个strings.xml文件,这里保存着程序中使用到的字符串(你当然可以选择不用这种方式来保存、使用字符串,但是会失去i18n的灵活性)。
    • src目录下,又是一个对应于我开发这个程序时所选择的包的路径。在testcase目录下,有两个文件:一个是HelloMyAndroid.java,一个是R.java。前者当然是我编写的源文件,而后者是根据res目录中资源的情况自动生成的一个资源-ID对照表。

    =================

    由于我准备在一个很常规的Hello World程序中增加一些新东西,所以我第一步就开始修改界面。为此,我修改了res/layout/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
    >
        <TextView
            android:id=@+id/lblHello
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/hello
        />
        <Button
            android:id=@+id/btnClickMe
            android:layout_width=fill_parent
            android:layout_height=wrap_content
            android:text=@string/btn_click_me
        />
    </LinearLayout>

    我选择使用LinearLayout来线性安排我的控件(在Android中称为“Widget”),而android:orientation=vertical表示这个布局将是竖直方向的;android:layout_width=fill_parentandroid:layout_height=fill_parent表示这个布局的宽度、高度都将填充整个父控件的空间(这里就是整个屏幕)。 (未完待续)