You are on page 1of 22

Thit k giao din trn Android

MultiUni
Trn V Tt Bnh

Tng quan
Trong Android, dng Activity hin th mn
hnh.
Mi activity s cha cc View theo dng cu
trc cy, ngha l mt Layout gc cha cc
view/layout con bn trong hoc ch c 1 view
duy nht. (lu Layout cng l mt view nh)
C th thit k giao din trong code java hoc
trong file xml trong th mc layout.

Tree view

Layout mu ca helloworld
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=@string/hello />
</LinearLayout>

Mt s thuc tnh c bn
Layout_width, layout_height: chiu rng ca
view (fill_parent l to bng kch thc ca
layout cha view ny, wrap_content l va
ni dung cn hin th ca view)
Orientation: vi LinearLayout, vic sp xp
cc view l nm k nhau theo hng ngang hoc
hng dc, ta khai bo orientation chn sp
theo kiu no (horizontal/vertical)

Mt s thuc tnh c bn
Gravity: thuc tnh ny qui nh cc view nm
bn trong layout s t theo v tr no so vi
layout(trung tm, tri , phi, trn di)
Weight: cc view phan chia t l din tch
hin th trn mn hnh (t l tnh theo weight
ca tng view trn tng s weight, cc view ko
khai bo weight th s xem qua width v
height)

V d c bn
Cc bn vo link ny ly code cho vo ng
dng, lu c thm cc dng gii thch ting
Anh nh
http://developer.android.com/resources/tutorial
s/views/hello-linearlayout.html

Giao din vi LinearLayout


Gi s bn cn thit k mt mn hnh nh sau:

Giao din vi LinearLayout


Vi LinearLayout (LL), cc view bn trong n c t k
nhau theo hng ngang hoc hng dc (cn lu c im ny)
Vi v d va ri, ta thy cch phn tch nh sau:
Nguyn tc ch yu l phn nhm cc View lin tip k nhau (nh 3
TextView k nhau theo hng dc hoc hng ngang trong v d trn)
vo trong mt LL, phn r t ln n nh.
Nh vy mn hnh gm 1 LL ln bao bn ngoi, nhn thy bn trong
chia thanh 2 phn trn di r rng vy thuc tnh ca LL ny l dng
dc, sau chia i ra v phn tch tip.
Phn bn trn li chia thnh 2 na theo hng ngang l mt LL dng
ngang, li chia i: mt bn l 1 ImageView (v ch c 1 view nn ko
cn b vo trong LL), mt bn li l 1 LL cha 3 TextView theo hng
dc.
Na bn di ta thy r rng cha 3 TextView k nhau theo hng
ngang cho vo 1 LL dng ngang l xong.

Giao din vi LinearLayout


Xem cy:

Thc hnh ti ch
Lm mt layout hin th nh trong hnh:

Cc bc nh sau:
Phn tch thnh phn layout trn giy (tho lun)
Phn tch c im cc view
Add thm resource nh
Th trc vi vi tab layout (khi view file xml
trong eclipse)
a vo thc thi trn my, nh gi.

Mt s loi layout khc


FrameLayout: cc view bn trong c qui
nh v tr bng khong cch so vi bin tri v
trn so vi layout, cc view c th ln nhau.
RelativeLayout: cc view c thit k da
trn quan h gia chng vi nhau v vi
layout cha chng.
AbsoluteLayout: dnh cho bn no lm nhiu
vi C#, nhng ko khuyn khch vi Android
nh.

Lu khi thit k giao din


Hn ch sau ca cy
Vi cc Layout phc tp, ng dng
RelativeLayout
Nn chn vo d liu tm xem trc layout
hin th ra sao bn tab layout (trong eclipse),
nhng xong ri th nh xa d liu tm i.
FrameLayout c vn vi background
Mun tm thuc tnh g, bm android: ri i
suggestion s ra xem.

Code nhanh mt s v d
Th cng nhau ngi code nhanh nh (khi
hiu ri th lm s rt nhanh thi)
http://developer.android.com/resources/tutorials/vie
ws/hello-formstuff.html
http://developer.android.com/resources/tutorials/vie
ws/hello-webview.html

List
Rt hay dng trong Android. c bit cc ng
dng cn lu tr v hin th nhiu d liu.
List l mt danh sch cc view thng thng
c cng dng layout t lin nhau.

ApiDemos
M ng dng ApiDemos c sn:
New android project Create project from
existing source Browse m th mc SDK
platforms android-1.6 samples ApiDemos
OK Finish.
M th mc project trong eclipse src m
com.example.android.apis.view m file
List1.java

List1
Trong code ca List1, cc bn tch bch phn
to mi ArrayAdapter ra nh
ArrayAdapter adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings);
setListAdapter(adapter);

Adapter dng kt ni d liu cn a vo


list vi layout hin th v cung cp cho
ListView hin th.
Sau khi to xong adapter, truyn vo cho list
hin th (dng code bn di)

List1
Vi on to mt adapter, ta phn tch ra:
this: context, lc no lm view cng cn ri
android.R.layout.simple_list_item_1: layout hin
th mi item trong list, y ch c mt TextView
mStrings: mng cc chui k t, l d liu cn hin th

Gii thch on to adapter nh sau: to mt


adapter mi vi context ca activity hin ti, dng
layout simple_list_item_1 hin th mi item trong
list, d liu a vo ly t mng cc chui mStrings

List1
To mt project mi, copy code List1 b qua,
ri lm thm cc thao tc sau:
To 1 file layout c 1 TextView v 1 ImageView
Trong TextView thm dng ny
android:id=@+id/text

Sa li on to mi adapter cho n dng ci


layout va to. (tm xem c ci constructor no
gip ch chnh xc n ci TextView trong layout
hay ko)
Dng ny: ArrayAdapter(Context context, int resource,
int textViewResourceId, T[] objects)

Chy ng dng

List1
Gii thch:
Vi code mu ban u, layout ch c mt view duy
nht l TextView nn bn ko cn khai bo g khc
ngoi layout v a d liu dng mng String vo,
adapter s t hiu v x l.
Vi yu cu sau ny, layout ca b c nhiu hn 1
view, bn cn truyn thm id ca TextView vo (
y l R.id.text) adapter c th hiu bn mun d
liu ca bn c truyn vo view no trong
layout.

List14
M List14 ra, c v chy th.

Vi mc ch gip cho cc bn
khng n tham d lp vn c th
hiu c bi ging k cng nn
trong slide s c nhiu on ch
thch hi di.

You might also like