實驗四《Android程序設計》實驗報告封面

實驗四《Android程序設計》實驗報告封面

課程:Java程序設計

班級:1753班
姓名:許鈺瑋
學號:20175329
指導教師:婁嘉鵬
實驗日期:2019年5月13日
實驗時間:13:45 - 15:25
實驗序號:21
實驗名稱:Android程序設計
html

一.實驗內容

1. Android Stuidio的安裝測試
2. Activity測試
3. UI測試
4.佈局測試
5.事件處理測試java

二.實驗步驟

  • 第一部分: Android Stuidio的安裝測試
  • 要求:
  • 參考《Java和Android開發學習指南(第二版)(EPUBIT,Java for Android 2nd)》第二十四章:
  • 參考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安裝 Android Stuidio
  • 完成Hello World, 要求修改res目錄中的內容,Hello World後要顯示本身的學號,本身學號先後一名同窗的學號,提交代碼運行截圖和碼雲Git連接,截圖沒有學號要扣分
  • 學習Android Stuidio調試應用程序android

    具體操做

  • Android Studio下載後安裝比較簡單,你要注意Android SDK的安裝位置。
  • 此時你能夠看到Android Studio的歡迎頁已經出來了,就像下面這樣:

    左側的Recent Projects將會顯示你在這裏編輯作的最近項目。右側的Quick Start則是快速開始選項。app

紅色方框選中的Start a new Android Studio project選項一般是咱們課程裏最常使用的,用於建立一個新的Android項目。ide

在此介紹一下其餘的選項:工具

1.Open an existing Android Studio Project:打開已有的Android Studio項目。在經歷一段時間的學習後,若是你想繼續編輯以前的項目,或者打開一個從網上下載的例子,你能夠點擊此選項。
2.Check out project from Version Control:從版本控制庫中獲取項目。對於團隊開發來講,版本控制是必不可少的工具。此選項容許你從GitHubGoogle Cloud以及TortoiseSVN等處同步項目。事實上,Android Studio對於這些版本控制工具的支持也是很好的,你能夠在設置中進行設定。
3.Import project(Eclipse ADT, Gradle, etc.):導入其餘開發環境中的項目。經過該選項你能夠將在Eclipse等處生成的項目遷移到Android Studio的開發環境中。
4.Import an Android code sample:導入Android代碼樣例。該功能將從Google及其合做夥伴那裏讀取示例的列表,你能夠下載並查看一些優秀的項目並繼續編輯它們。

在該對話框中你須要填寫待建立的項目名稱、公司域名和項目的存放位置。佈局

在填寫時,有如下事項你須要注意:學習

應用的命名應採用駝峯命名法,首字母必需要大寫。
此處的Company Domain在商業開發中是經常使用的,目的是便於歸檔。對於初學者而言,你能夠理解爲下面的Package name是域名的反轉,好比個人域名多是ljp.is.besti.edu.cn, 包名最好是cn.edu.besti.is.ljp(上圖中沒倒過來)
根據實際狀況,你能夠設置Project location,也就是項目的位置。一般狀況下咱們使用默認值就行。測試

  • 打開後一直是源源不斷的下載....
  • 每一個Activity都對應一個xml佈局文件(layout),佈局文件在項目的res/layout文件夾中能夠找到。

設置好後,點擊Finish按鈕完成項目的建立工做。ui

Android Studio會根據這些信息來建立項目,耐心等候它自動建立項目並進入主界面。這時你會在下圖所示的對話框中看到一些關於Gradle的信息。

Gradle是一款獲業界高度評價自動化構建工具,它的用處不少,好比引入外部庫等等。你能夠訪問Gradle官網瞭解更多信息。

稍候一下子,你便能看到Android Studio的主界面了,以下圖所示。

  • 又是源源不斷地下載...

配置和啓動模擬器
Android模擬器是能夠運行在電腦上的虛擬設備,可讓你不需使用物理設備便可預覽、開發和測試Android應用程序。當你身邊並無合適的Android設備時,模擬器就是一個不錯的選擇。

那麼如何使用Android模擬器呢?

在Android Studio的主界面上方的工具欄中,你能夠看到一個名爲AVD Manager的按鈕,點擊它你就能打開Android虛擬設備管理器(AVD: Android Virtual Device)。
咱們常說某個Android手機是4.15.0的系統,這裏的4.1或5.0就是指系統鏡像的版本。一樣,對於模擬器而言,也須要爲其配置某個版本的系統鏡像。你能夠看到這裏只有3個鏡像可供選擇,請選擇第一項——發佈名爲LolipopAndroid 5.1.1鏡像。

若是你須要其餘版本的系統,你能夠在Android SDK Manager中下載對應的系統鏡像包,再進入AVD Manager就能看到它們了。

接着,點擊右下角的Next按鈕,進入到確認配置的一步。

項目的編譯與運行

  • 編譯模擬運行以下

  • 第二部 建立 ThirdActivity
  • 相關知識:
    Activity 是包含了用戶界面組件的一個窗口。一個典型的Android應用程序,都是從啓動一個 Activity開始的。應用程序所建立的第一個窗口,叫作主活動。
    啓動一個 Activity 涉及到的方法:
    onCreat() onPause() onStart() onResume() onStop() onRestart() onDestory()
    MyActivity.java代碼以下
package cn.edu.besti.is.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MyActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
    }
}

activity_my.xml代碼以下

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView"
        android:text="20175329 許鈺瑋"
        android:layout_width="200dp"
        android:layout_height="132dp"
        tools:layout_editor_absoluteX="255dp"
        tools:layout_editor_absoluteY="255dp"
        tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>
  • 運行效果

  • 第三部分:UI測試
  • Toast是一個彈窗,用於顯示一條消息,做爲給用戶的反饋。
  • 修改MainActivity.java代碼
package cn.edu.besti.is.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toast toast = Toast.makeText(MainActivity.this, "20175221曾祥傑", Toast.LENGTH_LONG);
        toast.show();
    }
}
  • 修改activity_main.xml代碼
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="cn.edu.besti.is.myapplication.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="歡迎!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

實驗截圖

  • 第四部分:
  • 修改activity_main.xml代碼
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:text="20175221"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="400dp"
        android:layout_marginLeft="160dp" />
    <Button
        android:text="曾祥傑"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="450dp"
        android:layout_marginLeft="160dp" />
    <ImageButton
        android:src="@android:drawable/btn_star_big_on"
        android:background="@android:color/black"
        android:alpha="0.55"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="160dp"
        android:layout_marginLeft="183dp" />
    <ImageView
        android:src="@android:drawable/presence_audio_away"
        android:background="@android:color/holo_blue_bright"
        android:alpha="0.70"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginTop="200dp"
        android:layout_marginLeft="140dp"
        android:padding="4dp"
        android:id="@+id/imageView"
        android:layout_centerHorizontal="true" />

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <Space
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:srcCompat="@android:drawable/arrow_down_float" />

        <Switch
            android:id="@+id/switch1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Switch" />
    </TableRow>


</FrameLayout>

運行以下

  • 第五部分:事件處理測試
  • 修改MainActivity.java中代碼
package cn.edu.besti.is.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
    int counter = 0;
    int[] colors = { Color.BLACK, Color.BLUE, Color.CYAN,
            Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY,
            Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it
// is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
    public void changeColor(View view) {
        if (counter == colors.length) {
            counter = 0;
        }
        view.setBackgroundColor(colors[counter++]);
    }
}

修改activity_main.xml

<?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=".MainActivity">
    <AnalogClock
        android:id="@+id/analogClock1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="90dp"
        android:onClick="changeColor" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="20175329 許鈺瑋"
        android:textSize="30dp"
        android:layout_marginLeft="90dp"
        android:layout_marginTop="290dp"
        android:textColor="#bbbb57"/>

</RelativeLayout>

實驗效果以下

相關文章
相關標籤/搜索