You are on page 1of 25

THIT K GIAO DIN TRN ANDROID

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.

Ni dung

Activity View class XML layout Android layout Connect layout to Java Code

Activity?

Activity l mt trong 4 thnh phn chnh ca mt ng dng Android. Activity c dng hin th mt mn hnh. Khi lm vic vi activity cn bt u vi mt s kin thc c bn sau:

Lifecycle ca activity Khi ng mt activity, lin lc gia 2 activity Task To menu, dialog

Lifecycle ca Activity

Khi ng mt activity

Dng Intent:

Khai bo tng minh: cung cp chnh xc thng tin ca activity cn gi (nu cng ng dng ch cn cung cp tn class, nu ng dng khc nhau th cung cp tn package, tn class) Khai bo khng tng minh: cung cp thao tc cn lm g, vi loi d liu no, thao tc thuc nhm no h thng s tm activity tng ng khi ng.

Khi ng mt activity

Tng minh: on code bn di s to khi ng Activity tn l TargetActivity


Intent intent = new Intent(getApplicationContext(), TargetActivity.class); startActivity(intent);

Khi ng mt activity

Khng tng minh: on code bn di s khi ng mt activity no ng c kh nng xem nh.


Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(MediaStore.Images.Media.EXTERN AL_CONTENT_URI); startActivity(intent);

Khi ng mt activity

Vi cch khi ng activity khng tng minh, bn cn bit mt cht v Intentfilter. Intent-filter s gip mt activity (chung hn l mt thnh phn ng dng) ng k vi h thng mnh c th lm c thao tc g, trong nhm no, vi loi d liu no. Nh vy khi intent v intent-filter khp nhau, activity s c h thng khi ng.

Lin lc gia 2 activity

Khi khi ng mt activity, ta c th gi km d liu trong intent nh v d sau:


intent.putExtra("value1", new String("Hello")); intent.putExtra(value2", new Long(100));

Bn pha activity c khi ng, c th ly d liu c gi nh sau:


getIntent().getExtras().getString("value1"); getIntent().getExtras().getLong("value2");

Lin lc gia 2 activity

C th khi ng mt activity vi mt yu cu no v activity kia khi lm xong cng vic s tr li kt qu cho activity trc V d activity A yu cu mt activity lm gip vic chp nh, activity B p ng c vic ny, sau khi user chp nh xong s tr li file nh cho activity A. Nh th s tn nhiu cng sc lm mt vic m ngi khc lm ri.

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

Vao link ny ly code cho vo ng dng, lu c thm cc dng gii thch ting Anh http://developer.android.com/resources/tuto

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

Giao din vi LinearLayout

Xem cy:

LinearLayout

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.

Lu khi thit k giao din


Hn ch su 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.

Mt s v d

Tim hiu mt s vi du tai ng link sau:

http://developer.android.com/resources/tutorials/ http://developer.android.com/resources/tutorials/

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-3 samples ApiDemos OK Finish. M th mc project trong eclipse src m com.example.android.apis.view

You might also like