2018-2019-2 20175217 實驗四《Android開發基礎》實驗報告

1、實驗報告封面

  • 課程:Java程序設計 班級:1752班 姓名:吳一凡 學號:20175217
  • 指導教師:婁嘉鵬 實驗日期:2019年5月16日
  • 實驗時間:--- 實驗序號:實驗四
  • 實驗名稱:Android開發基礎html

  • 實驗要求:
    • 沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程
    • 完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導
    • 嚴禁抄襲,有該行爲者實驗成績歸零,並附加其餘懲罰措施。

2、實驗內容及步驟

1.Android Stuidio的安裝測試

  • 要求:
    • 參考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安裝 Android Stuidio
    • 完成Hello World, 要求修改res目錄中的內容,Hello World後要顯示本身的學號,本身學號先後一名同窗的學號,提交代碼運行截圖和碼雲Git連接,截圖沒有學號要扣分
    • 學習Android Stuidio調試應用程序

安裝配置過程android

  • 先在官網上下載對應版本的Android studio,而後基本就是一步一步正常安裝,一直點下一步就能安好了git

  • tool中點擊AVD Manager就能夠設置本身的手機了網絡

  • 先在這裏選擇型號

  • 選擇系統

  • 完成

  • 而後點擊這裏就能夠啓動本身的手機了

修改res中的內容app

  • 點擊res中的layout,在點開activity_main.xml,修改其中的text的內容便可

運行結果編輯器

2.Activity測試

  • 要求:
    • 構建項目,運行教材相關代碼
    • 建立 ThirdActivity, 在ThirdActivity中顯示本身的學號,修改代碼讓MainActivity啓動ThirdActivity
    • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

onCreat函數ide

  • 調用onCreat函數,建立活動開始

onTouch事件函數

  • 負責設置觸碰事件,在本程序中負責第二個活動ThirdActivity的調用,可利用Intent類建立對象,再用startActivity實現跳轉

TextView類工具

  • 在兩個活動中,都包括TextView類,觸發主活動中的TextView,會啓動第二個活動,並將消息傳給後者

onTouchListener接口佈局

  • MainActivity類實現了該接口,覆蓋了onTouch方法,負責監聽觸碰行爲

MainActivity代碼

package com.example.myapplication;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.TextView;
import android.widget.Button;
import android.widget.Toast;
import android.graphics.Color;
import android.widget.AnalogClock;

public class MainActivity extends Activity implements OnTouchListener {
    @Override

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView) findViewById(R.id.textView1);
        tv.setOnTouchListener(this);
    }


    @Override
    public boolean onTouch(View arg0, MotionEvent event) {
        Intent intent = new Intent(this, ThirdActivity.class);
        intent.putExtra("message", "20175217吳一凡");
        startActivity(intent);
        return true;
    }
}

運行截圖

3.UI測試

  • 要求:
    • 修改代碼讓Toast消息中顯示本身的學號信息
    • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

MainActivity代碼

package com.example.myapplication;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    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, "20175217吳一凡", 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:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:text="Hello!" />
</android.support.constraint.ConstraintLayout>

運行截圖

4.佈局測試

  • 要求
    • 修改佈局讓P290頁的界面與教材不一樣
    • 提交代碼運行截圖和碼雲Git連接,截圖要有學號水印,不然會扣分

MainActivity

package com.example.myapplication;

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

public class MainActivity extends AppCompatActivity {

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

activity_main.xml

<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:paddingLeft="2dp"
    android:paddingRight="2dp">

    <Button
        android:id="@+id/cancelButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="89dp"
        android:text="20175217" />
    <Button
        android:id="@+id/saveButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="吳一凡"
        android:layout_below="@+id/cancelButton"
        android:layout_alignLeft="@+id/cancelButton"
        android:layout_alignStart="@+id/cancelButton"
        android:layout_marginTop="23dp" />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginTop="45dp"
        android:padding="4dp"
        android:src="@android:drawable/ic_btn_speak_now"
        tools:srcCompat="@tools:sample/avatars[8]" />
    <LinearLayout
        android:id="@+id/filter_button_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="center|bottom"
        android:background="@android:color/white"
        android:orientation="horizontal" >
        <Button
            android:id="@+id/filterButton"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:text="Filter" />
        <Button
            android:id="@+id/shareButton"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:text="Share" />
        <Button
            android:id="@+id/deleteButton"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:text="Delete" />
    </LinearLayout>
</RelativeLayout>

運行截圖

5.事件處理測試

  • 要求:
    • 運行教材本章相關代碼並截圖

監聽器

  • Android是基於事件的。使用活動中的一個視圖進行的用戶交互,可能會觸發一個事件,包括點擊、長按、觸碰和按鍵等等
  • 要讓程序響應某一個事件,須要爲該事件編寫一個監聽器。也就是要實現嵌入在android.view.View類中的一個接口。好比OnClickListener接口的onClick()方法

MainActivity

package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AnalogClock;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AnalogClock;
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);
    }

    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"
    tools:context=".MainActivity">
    <AnalogClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="90dp"
        android:id="@+id/analogClock1"
        android:onClick="changeColor" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="20175217wyf"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="300dp"
        android:textSize="38dp"
        android:textColor="#bbbb00"/>
</RelativeLayout>

運行截圖

3、實驗過程當中遇到的問題及解決方法

問題1:當時作的時候,按教材代碼敲上去,這裏的menu是標紅的

解決1:添加menu目錄,並加入menu文件便可解決,後來發現這個方法時用來初始化目錄的,對實驗也沒什麼影響,就直接刪掉了

問題2:當時這裏也是標紅的

解決2:發現本身忘記添加button按鈕,在這裏添加上就行了

4、代碼託管

5、實驗心得體會

  • 此次實驗的內容Android開發是以前都沒有接觸過的領域,在實驗的過程當中遇到了不少歷來沒有遇到過的問題,在這個過程當中,我參考了一些博客,也跟同窗們交流討論了,解決了不少問題。經過此次實驗,我初步掌握Android開發的一些基本知識,並可以運行虛擬手機,在本身調試代碼的過程,對Android開發基本功能的運用瞭解的更深刻。
相關文章
相關標籤/搜索