APP界面設計大概總結
首先,你得有個Android Studio
其次,你得學會有耐心的對它
最后,要適應它習慣它了解它
來看看APP的基本步驟
先有資源 再是界面布局 下來承載布局Activity 然后些時間邏輯...
本次任務的布局用的是LinearLayout線性布局
從基本控件說起,常用的界面控件還是蠻多的,我們學了其中主要的幾個,剩下的就是自己去攻克了。
TextView 控件
常用屬性在這里就不寫了,本來打字速度就不快,書本上 度公子那里都是能找到的
所以來看它的表現形式就好
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/ym1"
android:background="#DBDBDB"
android:gravity="center"
android:text="李易峰的羊毛已上線"
android:textSize="22sp"/>
EditText 控件
常用屬性也就不寫了
來看看表現形式
<EditText
android:id="@+id/ev_userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入羊毛通行證"/>
<EditText
android:id="@+id/ev_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入你的密碼哦" />
EditText是一個重要的控件,是用戶和Android應用進行數據傳輸的窗戶,它是TextView的子類
兩者屬性基本相似,但TextView是顯示文本,無法輸入,EditText時輸入框。
Button控件
它是一種按鈕控件,在該控件上單擊,能引發相應事件處理函數
<Button
android:id="@+id/btn_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="進入羊圈中"
android:textSize="20dp"
/>
Button 的使用方法有好幾種,大家課本上也是有的,這可是要記住的,你們也都遲早會背過的,我就不詳細寫了,勤勞點,動動小手。
在這里放個小例子好了
protected void onCreate(Bundle savedInstanceState) {
//onCreate:創建界面上的所有組件,輸入框對象,按鈕對象,按鈕的監聽事件
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
evuserName = (EditText) findViewById(R.id.ev_userName);
evpassword = (EditText) findViewById(R.id.ev_password);
btnlogin = (Button) findViewById(R.id.btn_main);
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String uerName = evuserName.getText().toString();
String password = evpassword.getText().toString();
Toast.makeText(MainActivity.this,"通行證:"+uerName +"密碼:"+password,Toast.LENGTH_LONG).show();
}
});
}
以上基本控件運用熟練,一個簡單的登錄界面也就出來了,其他就自己發揮想象力咯
接下來是個人信息維護界面
布局依舊是那樣的線性布局,也同樣的用了上述的基本控件,但在那基礎上還增加了一些用於顯示頭像,進行多選或單選的控件。
我想吃餃子
ImageView控件
用於展示圖片的控件 可顯示靜態圖片,亦可顯示動態圖片
那么 常用屬性 老規矩 有書的看書,沒書的問問度公子,這都是要記得,啊哈
<ImageView
android:layout_width="210sp"
android:layout_height="108sp"
android:layout_gravity="center"
android:src="@drawable/btm1" />
其中關鍵屬性android:src 用於設置在其控件中展示什么圖片,可以通過XML或代碼賦值,在Android中推薦使用PNG圖片。
好想吃甜品
RadioButton控件
此控件是一個單選按鈕,用於單選場景,需要同RadioGroup控件一同使用方可實現單選
RadioGroup是單選組合框,在沒有它的情況下,RadioButton就可以全部選中了,沒有例外,
而在 多個RadioButton被它包含的情況下,RadioButton就只能選一個了...
就像在下面 性別中男和女只能選一個。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性 別:"
android:textSize="22sp"/>
<RadioGroup
android:id="@+id/rg_sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/yy_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:textSize="22sp"/>
<RadioButton
android:id="@+id/yy_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="22sp"/>
</RadioGroup>
btnConfirm.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String name = etName.getText().toString();
String sex = "";
int id = rgSex.getCheckedRadioButtonId();
if (id == R.id.yy_male) {
sex = yyMale.getText().toString();
} else if (id == R.id.yy_female) {
sex = yyFemale.getText().toString();
}
那我們上面說了還要實現多選的效果呢,就好像喜歡的東西不會只有一個,在代碼中也是必須有多選的
CheckBox控件
此控件可以用於多選的場景,也可用於只有一個選項的情況,如問今天中午買草莓你是否同意
它的關鍵屬性有以下四種
1.android:text:用於設置CheckBox控件提示文字
2.android:checked="true" 用於設置此標簽的初始狀態為選中
3.isChecked():用於判斷按鈕是否處於被選中狀態
4.setChecked(Boolean flag): 通過傳遞一個布爾參數來設置按鈕的狀態
吶吶 就像下面這樣
<CheckBox
android:id="@+id/chk_java"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Java"/>
<CheckBox
android:id="@+id/chk_Dance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Dance"/>
<CheckBox
android:id="@+id/chk_Math"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Math"/>
if (chkJava.isChecked()) {
likedCourses += chkJava.getText().toString() + ",";
}
來來來 讓眼睛舒服一下
那么 接下來 回到主題
來看看Android的常用事件
常見事件的說明 老規矩 基本知識 就不用我慢慢打出來了
進入正題 觸屏與鍵盤事件
onTouchEvent事件
它是手機屏幕事件的處理方法應用程序可以通過該方法處理手機屏幕的觸摸事件
public boolean onTouchEvent(MotionEvent event) {
一般在Activity類中重寫該方法
觸屏事件的練習
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
float x = event.getX();
float y = event.getY();
imageView.setPadding((int)x-111,(int)y-211,0,0);
String pos = "x坐標:" + x + "y坐標:" + y;
Toast.makeText(this, pos, Toast.LENGTH_SHORT).show();
}
return super.onTouchEvent(event);
}
鍵盤事件
它主要用於對鍵盤事件的監聽,根據用戶輸入內容對鍵盤事件進行跟蹤,也就是去觸發事件
它使用View.OnKeyListener接口進行事件處理 定義如下
public class interface View.OnKeyListener{
public boolean OnKey(View.v,int keyCode,KeyEvent event){
}
}
最后的菜單與消息通知
好想吃眼前的面包
菜單
具體使用方法
1.創建布局文件
2.在該布局上加載菜單
public boolean onCreateOptionsMenu(Menu menu) {
//動態添加菜單項
// menu.add(Menu.NONE, Menu.FIRST + 1, 1, "保存").setIcon(android.R.drawable.ic_menu_save);
// menu.add(Menu.NONE, Menu.FIRST + 2, 3, "刪除").setIcon(android.R.drawable.ic_menu_save);
// menu.add(Menu.NONE, Menu.FIRST + 3, 2, "打開").setIcon(android.R.drawable.ic_menu_save);
// //2.子菜單
// SubMenu subMenu = menu.addSubMenu("子菜單");
// subMenu.add(0,101,0,"子菜單1");
// subMenu.add(0,102,0,"子菜單2");
//getMenuInflater().inflate(R.menu.main, menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
3.為菜單項注冊事件
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST + 1:
case Menu.FIRST + 2:
case Menu.FIRST + 3:
Toast.makeText(this, item.getTitle().toString() + "菜單被單擊了", Toast.LENGTH_LONG).show();
break;
對話框
Android中主要對話框有以下幾種
1.AlertDialog:一個可以擁有0,1,2,或3個按鈕的對話框,它里面的內容可以是文本、checkbox,或radio的listview,它是一個進場被用到的dialog。
2.progressdialog:一個窗體內部是progress的dialog,它繼承了AlertDialog,所以它擁有的按鈕和AlertDialog一樣。
3.datepickerdialog:一個提供選擇日期功能的dialog
4.timepickdialog:一個提供選擇時間功能的dialog
這是書上的基本知識,通過書本了解 我沒力氣打字了...
然后AlterDialog.Builder類常用方法在書本上也是有的 老規矩 基礎知識自己記吧
例子來了...
//創建一個普通的Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//給builder設值
builder.setTitle("關於");
builder.setIcon(R.drawable.btm1);
builder.setMessage("版本為1.0");
builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.setNeutralButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.this.finish();
}
});
//創建並顯示
builder.create().show();
break;
}
return super.onOptionsItemSelected(item);
}
消息通知
咳咳 這里我沒印象自己學過,也就不會了,更不會寫總結了,那此次任務的總結就暫時到這里了
嗯 辛苦我了 寫總結真不容易 想喝粥了