实验四 Android程序设计

任务一:完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号

完成这个任务,首先需要了解Android应用程序文件的组成:

  • 项目的目录树

build :该目录包含了自动生成的文件,这些文件包括了编译设置项、R类等。

libs:该目录包含了开发Android应用所需要的库文件。

src:该目录存放了应用的源代码.java文件。默认情况下,它包含了MainActivity.java文件,这个源代码j有一部分是执行了你点击应用图标时启动应用所需要功能。

res:该目录存放了所有的资源文件。

drawable:该目录存放了项目的drawable对象和一些图片资源。

layout:该目录存放了各个界面的布局文件。

menu:该目录存放了应用中设计的菜单对象。

mipmap:该目录存放了应用的主要图片资源。

values:该目录存放了字符串、颜色等定义的资源集合。

AndroidManifest.xml:该文件是描述应用基础特性的文件,定义了每个组件。

  • res目录
    存放了应用程序使用到的各种资源,如xml界面文件、图片、数据等。通常包含drawable子目录、layout子目录、values子目录三个。

drawable:存放分辨率不同的图片。
layout:存放xml界面布局文件,主要用于显示用户操作界面。
values:存放不同类型的数据,如string、array等。

  • 对于这个任务,我们只需要将布局文件activity_main.xml中相应的内容稍做修改:
    将其中的android:text="Hello World!"改为 android:text="Hello World!\n\t20155332"即可。

任务二:创建 ThirdActivity, 在ThirdActivity中显示自己的学号,修改代码让MainActivity启动ThirdActivity

  • 一个Activity类会通过XML文件(该文件在项目的res/layout目录中)来加载所有的UI组件,
  • 一个应用可以有一个或多个Activity,这没有任何限制。
  • 在应用中定义的每个Activity都必须在项目的AndroidManifest.xml文件中声明。
  • 并且,应用中的主Activity(你可想象成主界面)在声明时还必须注明
  • 配置Activity
    在文件AndroidManifest.xml中,只要为application...元素添加activity...子元素,即可配置Activity。
    在这个任务中,我们需要调用ThirdActivity,所以在AndroidManifest.xml中再添加一个activity...>即可。
  • 启动、关闭Activity
    每一个控制文件的Activity都需要有对应的启动程序文件(.java),和相应的布局文件(.xml)。
    在这个任务中,要求让MainActivity启动ThirdActivity,所以还需要修改MainActivity,相应代码段改为:
public boolean onTouch(View arg0, MotionEvent event) {
        Intent intent = new Intent(this, ThirdActivity.class);
        intent.putExtra("message", "20155332盛照宗");
        startActivity(intent);
        return true;
    }
  • 运行结果如图

任务三:修改代码让Toast消息中显示自己的学号信息

  • Toast是Android中用来显示信息的一种机制。Toast显示的时间有限,在经过一段时间后就会自动消失。
  • Toast有很多用法,如默认显示、自定义显示位置、带图片的显示、完全自定义显示、其他线程调用显示等等。这里展示最常用的默认显示。
//activity_main示例
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.dragon.toast.Main">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="20155332盛照宗"
        android:id="@+id/btn1"
        android:layout_alignParentTop="true"
        android:layout_marginTop="31dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>
//MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button btnshow1 = (Button) findViewById(R.id.btn1);
        btnshow1.setOnClickListener(new View.OnClickListener()
                                    {
                                        @Override
                                        public void onClick(View v){
                                            Toast toast = Toast.makeText(MainActivity.this,"20155332盛照宗", Toast.LENGTH_LONG);
                                            toast.show();
                                        }
                                    });

任务四:修改布局让P290页的界面与教材不同

什么是布局
用户交互界面中最基本的构件块就是View(视图)对象。
它由View类创建,在屏幕上占据了一块矩形区域,并对绘制和事件处理作出相应。
View类也是各种控件的基类,这些控件有按钮、文本框等等。

android:id:为一识别该视图的ID。
android:layout_width:布局的宽度。
android:layout_height:布局的高度。
android:layout_marginTop:布局顶部的额外空间。
android:layout_marginBottom:布局底部的额外空间。
android:layout_marginLeft:布局左部的额外空间。
android:layout_marginRight:布局右部的额外空间。
android:layout_gravity:指定子视图的放置方式。
android:layout_weight:权重。指定了在布局中,应该分配多少的额外空间给某个视图。
android:layout_x:指定了布局的X坐标。
android:layout_y:指定了布局的Y坐标。
android:paddingLeft:布局左边的内边距。
android:paddingRight:布局右边的内边距。
android:paddingTop:布局顶部的内边距。
android:paddingBottom:布局底部的内边距。
top:将对象放置在容器的顶端而不改变其尺寸。
bottom:将对象放置在容器的底端而不改变其尺寸。
left:将对象放置在容器的左端而不改变其尺寸。
right:将对象放置在容器的右端而不改变其尺寸。
center_vertical:将对象放置在容器的垂直方向中心处而不改变其尺寸。
center_horizontal:将对象放置在容器的水平方向中心处而不改变其尺寸。
fill_vertical:在需要时增加对象在垂直方向上的尺寸,以完全充满它的容器。
fill_horizontal:在需要时增加对象在水平方向上的尺寸,以完全充满它的容器。
center:将对象放置在容器的中心而不改变其尺寸。
fill:增加对象在水平、垂直方向上的尺寸,以完全填满它的容器。
可以根据应用的实际需求来选择对应的布局。

任务五:事件处理测试 参考《Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)》第二十八章:

  • 当用户按下(或触碰)时钟的时候,会调用该方法并接受时钟对象。要修改时钟的颜色,需要调用其setBackgroundColor方法,传入一个颜色对象,从而实现触碰时钟改变颜色。

总结

通过本次实验,我亲身感受到了安卓开发设计的奇妙,对java产生了浓厚的兴趣。
特别是在学习UI设计和互动设计时感觉到了Java程序设计时逻辑的重要性。
这次实验是全新的内容,将java用在了我们之前从未接触过的领域——Android开发。
在我看来,这次实验的虽然没有让我们学到多么复杂深奥的知识,但是让我们拓宽了视野的机会,看到了更广阔的天地。

posted @ 2017-06-11 21:31  besti5332  阅读(227)  评论(2编辑  收藏  举报