標籤:hot 增加 底部 五個 對象 取值 資料 tcl abc
20165310 實驗四 《Android程式設計》第24章:初識Android任務一:改寫res目錄中的內容,Hello World後要顯示自己的學號,自己學號前後一名同學的學號
首先我們要先瞭解Android Studio的Project結構,其中我們需要編輯的內容集中在app目錄中。
build:存放項目的build檔案,自動產生。
libs:引入的庫一般存放在libs中。
src:在src目錄中儲存了開發人員編寫的程式檔案,我們主要的學習內容也在這個目錄下。
AndroidManifest.xml:這是一個控制檔案,用來描述應用程式。不同的參數表示不同的含義,例如“manifest”為根節點,描述了package中的所有內容;“application”元素可以包含application的一些全域和預設的屬性,如標籤、icon、主題等等;“activity”是與使用者互動的主要工具,通常包含一個或多個activity元素,描述App中的各種活動。 所有新增的活動必須在其中申明,否則無法運行。
java目錄:存放活動的原始碼,所有的使用中的程式在這個目錄下建立編寫。
res目錄:存放了應用程式使用到的各種資源,如xml介面檔案、圖片、資料等。通常包含drawable子目錄、layout子目錄、values子目錄。
drawable:存放解析度不同的圖片,app的表徵圖等。
layout:存放xml介面布局檔案,主要用於顯示使用者操作介面,Java檔案夾中的活動的xml檔案在此目錄下建立編寫。
values:存放不同類型的資料,如string、array等。
對於這個任務,我們需要對res->layout ->activity_main.xml中相應的內容進行修改:
將其中的android:text="Hello World!"改為android:text="Hello World!\n20165310\n2065310\n20165311",運行結果如顯示:
第25章:活動建立 ThirdActivity, 在ThirdActivity中顯示自己的學號,修改代碼讓MainActivity啟動ThirdActivity
?```javapackage com.example.abc.a20165310exp4_2;import android.support.v7.app.AppCompatActivity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class ThirdActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_third); }}?```
修改MainActivity,利用 intent相關函數,使主函數能夠觸發ThirdActivity,新增OnTouch方法如下:
@Override public boolean onTouch(View arg0, MotionEvent event) { Intent intent = new Intent(this, ThirdActivity.class); startActivity(intent); return true; }
在AndroidManifest.xml 進行活動註冊:
<activity android:name=".ThirdActivity" > </activity>
建立activity_third.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: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=".ThirdActivity" > <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="20165310" /></RelativeLayout>
運行結果如下:
第26章:UI組件任務三:修改代碼讓Toast訊息中顯示自己的學號資訊
Toast:Toast是Android中用來顯示資訊的一種機制。Toast顯示的時間有限,在經過一段時間後就會自動消失,並不佔用任何記憶體。Toast有很多用法,如預設顯示、自訂顯示位置、帶圖片的顯示、完全自訂顯示、其他線程調用顯示等等。這裡展示最常用的預設顯示。
對MainActivity進行修改編輯:
package com.example.abc.a20165310exp4_3;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.TextView;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.ss1); btnshow1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast toast = Toast.makeText(MainActivity.this, "20165310", Toast.LENGTH_LONG); toast.show(); } }); }}
對activity_main.xml進行編輯:
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:layout_gravity="center" android:gravity="center_horizontal" android:padding="120dp" android:orientation="vertical" tools:context=".MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginTop="16dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:text="20165310xw" android:id="@+id/ss1" /></LinearLayout>
運行結果如下:
第27章:布局任務四:修改布局讓P290頁的介面與教材不同
- 幀版面配置容器為每個組件建立一個空白地區,一個地區稱為一幀,這些幀會根據FrameLayout中定義的gravity屬性自動對齊。
- 我們需要為組件添加layout_gravity屬性,從而自訂群組建的對齊。如果不使用layout_gravity屬性,多項內容會重疊。
layout_gravity可以使用如下所示的取值:
top:將對象放在其容器的頂部,不改變其大小;
bottom:將對象放在其容器的底部,不改變其大小;
left:將對象放在其容器的左側,不改變其大小;
certer_vertical:將對象縱向置中,不改變其大小,垂直方向上置中對齊;
- ......
修改後的xml代碼如下:
?
<?xml version="1.0" encoding="utf-8"?><FrameLayout 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:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="150dp" android:layout_marginTop="150dp" android:text="20165310" /> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginTop="60dp" android:alpha="0.45" android:src="@android:drawable/alert_dark_frame" /> <ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@android:color/holo_orange_dark" /> <ImageButton android:id="@+id/imageButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@android:drawable/btn_star" /></FrameLayout>
運行結果如下:
第28章:監聽器任務五:運行教材本章相關代碼並
- Android是基於事件的。使用活動中的一個視圖進行的使用者互動,可能會觸發一個事件,包括點擊、長按、觸碰和按鍵等等。
- 要讓程式響應某一個事件,需要為該事件編寫一個監聽器。也就是要實現嵌入在
android.view.View類中的一個介面。比如OnClickListener介面的onClick()方法。
當使用者按下(或觸碰)時鐘的時候,會調用該方法並接受時鐘對象。要修改時鐘的顏色,需要調用其setBackgroundColor方法,傳入一個顏色對象,從而實現觸碰時鐘改變顏色。 增加一個Android表徵圖與五個五角星,點擊五角星,五角星會從第一個開始變亮直到全亮。
對MainActivity進行修改編輯:
package com.example.abc.a20165310exp4_5;import android.support.v7.app.AppCompatActivity;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.YELLOW, Color.DKGRAY, Color.GRAY, Color.GREEN, Color.LTGRAY, Color.MAGENTA, Color.RED, Color.WHITE, Color.YELLOW , Color.GREEN}; @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: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" 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_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="195dp" android:onClick="changeColor" /> <RatingBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="82dp" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="144dp" android:src="@mipmap/ic_launcher" /></RelativeLayout>
運行結果如下:
實驗感想
- 安裝Android Studio的過程出現許多困難,最後進行了客服,過程中學習到很多知識。
- 雖然說Android開發是基於Java的,但是不管是從Project的結構還是對於reg的初次接觸,都有許多新內容需要學習,本次實驗督促了我們的理論學習也鞏固了理論知識。
20165310 Java實驗四 《Android程式設計》