編輯:關於Android編程
Android應用程序的用戶界面是一切,用戶可以看到並與之交互。UI 是用戶能看見並可交互的組件。
– 系統 UI
– 自定義 UI
– View
– ViewGroup
? View 是屏幕上的一個矩形區域,負責繪制和事件處理;它是控件(widget)的基類。
? ViewGroup 是 View 的子類,它是不可見的容器,負責管理其他 View 及它們的布局屬性;它是布局(layout)和視圖容器的基類。
布局
是不可見的容器(ViewGroup)
定義 UI 的可視化結構
通過布局參數(LayoutParams)定義子元素的尺寸、位置
布局分類:
? 線性布局 (LinearLayout)
? 相對布局 (RelativeLayout)
? 幀布局 (FrameLayout)
? 表格布局 (TableLayout)
? 網格布局 (GridLayout)
由視圖可見,凡是顯示在Android屏幕上的“可視化”控件都是View,因為全都繼承自View。在使用時,可以類型轉化。
View 的通有屬性如圖:
控件
用途
TextView
顯示文字,相當於Panel
ImageView
顯示圖片
EditText
輸入框,可編輯,可設置軟鍵盤方式
Button
按鈕,可附帶圖片
CheckBox
復選框
RadioButton
單選按鈕(和 RadioGroup 配合使用)
按用途分類:
? 文本控件
– TextView
– EditText
? 按鈕控件
– Button
– ImageButton
? 狀態開關按鈕
– ToggleButton
? 單選與復選按鈕
– CheckBox和RadioButton
? 圖片控件
– ImageView
? 時鐘控件
– AnalogClock
– DigitalClock
? 日期與時間選擇控件
– DatePicker
– TimePicker
?顯示文字,相當於Panel。一般用來文本展示,繼承自android.view.View,在android.widget包中。
常用屬性設置見下圖:
在布局文件(XML)對應的寫法:
屬性名稱
說明
android:text=“”
文字顯示
android:autoLink=””
鏈接類型。Web網址,email郵件,phone電話,map地圖。Linkify。
android:hint="請輸入數字!"
當TextView中顯示的內容為空時,顯示該文本
android:textColor = "#ff8c00"
字體顏色
android:textSize="20dip"
字體大小
android:layout_gravity="center_vertical"
設置控件顯示的位置:默認top,這裡居中顯示,還有bottom
輸入框,可編輯,可設置軟鍵盤方式。繼承自android.widget.TextView,在android.widget包中。
? 常用屬性設置:
android:hint="請輸入用戶名"
輸入框的提示文字
android:password=""
True為密碼框
android:phoneNumber=""
True為電話框
android:digits
設置允許輸入哪些字符。如“1234567890.+-*/%\n()”
android:numeric=""
數字框。Integer正整數, signed整數(可帶負號), decimal浮點數。
Button是最常用的按鈕,繼承自android.widget.TextView,在android.widget包中。他的常用子類CheckBox,RadioButton, ToggleButton。
? 通常用法:
? super.findViewById(id)得到在layout中聲明的Button的引用,setOnClickListener(View.OnClickListener)添加監聽。然後再View.OnClickListener監聽器中使用v.equals(View)方法判斷哪個按鈕被按下,進行分別處理。
ImageButton繼承自ImageView類,與Button之間的最大區別在於ImageButton中沒有text屬性。ImageButton控件中設置按鈕中顯示的圖片可以通過android:src屬性來設置。也可以通過setImageResource(int)來設置。
ImageView常用屬性(也是ImageButton繼承具有的屬性):
ImageView控件負責顯示圖片,其圖片的來源可以是在資源文件中的id,也可以是Drawable對象或者位圖對象。還可以是Content Provider的URI。
常用屬性:
Android:adjustViewBounds
設置是否需要ImageView調整自己的邊界,保證圖片的顯示比例
Android:maxHeight
最大高度
Android:maxWidth
最大寬度
Android:src
圖片路徑
Android:scaleType
調整或移動圖片
常用方法:
setAlpha(int)
設置ImageView透明度
setImageBitmap(Bitmap)
設置ImageView顯示的內容為Bitmap對象
setImageDrawable(Drawable)
設置ImageView所顯示內容為Drawable
setImageURI(Uri)
設置ImageView所顯示內容為Uri
setSelected(boolean)
設置ImageView的選擇狀態
setImageResource(int)
設置ImageView顯示內容的指定的id資源
ImageView 伸縮類型:
android.widget.CheckBox復選按鈕,繼承自android.widget.CompoundButton,在android.widget包中。
常用方法:
isChecked()檢查是否被選中。
監聽按鈕狀態更改,需要添加setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener);
android.widget. RadioButton單選按鈕,繼承自android.widget.CompoundButton,在android.widget包中。
通常用法:
單選按鈕要聲明在RadioGroup,RadioGroup是流式布局android.widget.LinearLayout的子類。
單選按鈕狀態更改的監聽,是要給他的RadioGroup添加setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener)監聽器。注意監聽器類型和CheckBox是不一樣的。
android.widget. ToggleButton開關形式的按鈕,繼承自android.widget.CompoundButton,在android.widget包中。
常用屬性設置:
android:textOn=""
選擇狀態文字
android:textOff=""
未選狀態文字
如圖見效果:
常用方法:
? getDayOfMonth():獲取當前Day
? getMonth():獲取當前月
? getYear()獲取當前年
? updateDate(int year, int monthOfYear, int dayOfMonth):更新日期
TimePicker
? 查看一個在24小時或上午/下午模式下一天的時間。
? 常用方法
? setCurrentMinute(Integer currentMinute)設置當前時間的分鐘
? getCurrentMinute()獲取當前時間的分鐘
? setEnabled(boolean enabled)設置當前視圖是否可以編輯。
? m_TimePicker.setIs24HourView(true);設置為24小時制顯示
? setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)當時間改變時調用
相關包類:
? TimePickerDialog、DatePickerDialog
? 以對話框形式顯示日期時間視圖
? Calendar
? 日歷是設定年度日期對象和一個整數字段之間轉換的抽象基類,如,月,日,小時等。
1、TextView演示---實現下圖效果
文本中的鏈接:
跑馬燈效果:
2、EditText---實現下圖效果
帶圖標的輸入框:
選中全部文本:
3、Button---實現下圖效果
代碼實現:
轉眼時間一晃就過去了,從事Android開發已有一年多的時間,由於項目忙,一直沒時間更新,雖然筆記做了很多,但是一直沒時間總結,只是把很多開發遇到的坑和知識點記在筆記本。
概述Android框架支持設備的相機拍照和錄像功能,你的應用可以直接調用系統的Camera應用來拍照或者錄像(比如微信拍照),當然也可以利用Android系統提供的API
公司的以前的項目,看到使用了這個Android自帶的倒計時控件Chronometer,現在整合了一下先看看效果:<Chronometer android:id=
照例先看效果圖自定義代碼示例public class BezierView extends View { Paint paint;//畫筆 Path path;//路徑