Truy xu t tai nguyên hinh nh:â aJava code: R.drawable.ic_laucher XML : @drawable/ic_laucher 1.3 Truy xu t tai nguyên â Cu phap dung chung khi truy xu tâ : Java code: []R.... %d book foun
Trang 1BÀI 4:TÀI NGUYÊN NG D NG C B N Ứ Ụ Ơ Ả
1 Khai ni m ê
1.1 Tai nguyên va tinh t ươ ng thich
Tai nguyên: m t d ng d li u đô a ư ê ươc xây d ng nh m đap ng cac yêuư ă ư
c u v hi n th bao g m hinh nh, âm thanh, văn b n, cac bâ ê ê i ô a a ô
c c….tu ương thich cho t ng thi t b riêng bi t.ư ê i ê
Cho phep khai bao m t l n va s d ng trong ph m vi toan ng d ng,ô â ư u a ư u
d dang thay đ i theo ng c nh.ê ô ư a
Tinh tương thich: đ co th t i u hoa tinh tê ê ô ư ương thich thi t b taiê i nguyên đươc chia lam hai d ng:a
• Tai nguyên m c đ nh : không quan tâm đ n c u hinh c a thi tă i ê â u ê
b ho c không co tai nguyên đ l a ch n.i ă ê ư o
• Tai nguyên đ c tr ng: đă ư ươc s d ng trên thi t b riêng bi tư u ê i ê thông qua cac t h n đ nh va đư a i ương d n.â
ng d ng t l a ch n tai nguyên phu h p v i thông tin c u hinh
thi t b , tai nguyên m c đ nh đê i ă i ươc ch n n u không co tai nguyên phuo ê
h pơ
1.2 Đ nh nghia tai nguyên i
Trang 2Tai nguyên ng d ng đư u ươc đ nh nghia trong th m c i ư u res c a d an,u ư bao g m cac d ng tai nguyên sau:ô a
• Animator
• Anim
• Color
• Drawable
• Layout
• Menu
• Raw
• Values
• XML
V n đ v đ nh nghia tai nguyên:â ê ê i
• Co qua nhi u thi t b co c u hinh khac nhau v kich thê ê i â ê ươc man hinh, đ phân gi i, phim v t ly….ô a â
• M i thi t b co th ho t đ ng nhi u ch đ khac nhau:ô ê i ê a ô ơ ê ê ô năm ngang, n m đ ng, thay đ i ngôn ng ….ă ư ô ư
T h n đ nh: dung đ t o ra cac tai nguyên khac nhau co nhi uư a i ê a ê thi t b co c u hinh khac nhau ho t đ ng cac ch đ khac nhau.ê i â a ô ơ ê ô
• Vi d :u
Drawable
Ic_laucher.png Drawable-hdpi
Ic_laucher.png Cac d ng t h n đ nh:a ư a i
• MCC – MNC
Mcc452-mnc04
• Language & Region
Vi-rVN
• Layout Diretion( API 17)
Ldltr – ldrtl
• Samilest Width
Sw320dp – sw480dp – sw600dp – sw720dp
• Available Width
W720dp – w1024dp
• Available Height
H720dp – h2014dp
Cac d ng t h n đ nh:a ư a i
• Screen Size
Small – normal – large – xlarge
• Screen Aspect
Long – notlong
• Screen Orientation
Port – land
Trang 3• UI Mode
Car – desk – television – appliance
• Night Mode
Night – notnight
• Screen pixel density
Idpi – mdpi – hdpi – xhdpi – nodpi – tvdpi Cac d ng t h n đ nh:a ư a i
• Touch Screen
Notouch – finger
• Keyboard
Keysexposed – keyshidden – keyssoft
• Input Method
Nokeys – qwerty – 12key
• Navigation Key
Navexposed – navhidden
• Non- Touch Navigation
Nonav – dpad – trackball – wheel
• Platform Version
V3 – v4 – v7 – v11…
Cach t o tai nguyên:a
• T o th m c m i trong th m c a ư u ơ ư u res v i đ nh d ng:ơ i a
<tên tai nguyên>-<t h n đ nh>ư a i
• Vi d :u
Drawable-vi-rVN
Quy tăc đăth tên cho th m c tai nguyên:ư u
• Co th co nhi u t h n đ nh cho m t th m c tai nguyên cach nhauê ê ư a i ô ư u
b ng d u g ch ngang(“-“).ă â a
• Cac t h n đ nh ph i theo th t u tiên.ư a i a ư ư ư
• Cac th m c tai nguyên không đư u ươc ch th m c tai nguyên khacư ư u
• Không cho phep hai t h n đ nh gi ng nhau trên cung m t th m cư a i ô ô ư u
1.3 Truy xu t tai nguyên â
T t c tai nguyên ng d ng đâ a ư u ươc truy xu t thông qua l p R.â ơ
L p R:ơ
• L p tinh/ơ
• Ch a trong th m c gen, t đ ng t o cac đ nh d ng cho tai nguyênư ư u ư ô a i a (ID) thông qua AAPT( android Application Project Tool)
• Ch a cac l p tai nguyên, m i d ng tai nguyên la m t l p tinhư ơ ô a ô ơ
Vi d :u
Trang 4Truy xu t tai nguyên hinh nh:â a
Java code: R.drawable.ic_laucher XML : @drawable/ic_laucher
1.3 Truy xu t tai nguyên â
Cu phap dung chung khi truy xu tâ :
Java code:
[<package_name.>]R.<resource_type>.<resource_name>
XML:
@[<package_name.>]<resource_type>/<resource_name>
Trong đo:
• Package_name: tên goi ng d ngư u
• Resource_type: d ng tai nguyêna
• Resource_name:
Tên tai nguyên c n truy xu t không bao g m ph n m r ngâ â ô â ơ ô
t p tinâ
Thu c tinh ô android:name danh cho cac tai nguyên cơ
b n( string, color… ).a
1.4 Tai nguyên Alias
Cho phep t o ra tai nguyên t tai nguyên co s n, ph c v cho nhi u c ua ư ă u u ê â hinh thi t b nh ng không ph i la tai nguyên m c đ nh.ê i ư a ă i
Vi d :u
• V n đ : t o bi u tâ ê a ê ương ng d ng khac nhau cho cac ngôn ng khacư u ư nhau, đ i v i ti ng Anh va ti ng Vi t thi cung biêu tô ơ ê ê ê ương
*Gi i quy t v n đ ( không dung Alias):a ê â ê
• T o th m c tai nguyên cho t ng ngôn ng a ư u ư ư
• Chep hinh nh khac nhau cho t ng th m c, hai th m c co t h na ư ư u ư u ư a
đ nh i en va vi co hinh nh gi ng nhau.a ô
* Gi i quy t v n đ ( dung Alias):a ê â ê
• T o th m c tai nguyên cho t ng ngôn ng a ư u ư ư
• Chep hinh nh khac nhau cho t ng th m c.a ư ư u
• Th m c co t h n đ nh ư u ư a i en t o tai nguyên Alias t th m c a ư ư u vi.
Trang 52 Cac tai nguyên c b n ơ a
Cac tai nguyên c b n đơ a ươ ưc l u tr trong th m c res/Values.ư ư u
Đ nh danh tai nguyên đi ươc kh i t o thông qua thu c tinh name khôngơ a ô
ph i tên t p tina ê
Co th l u tr nhi u tai nguyên vao trong m t t p tin.ê ư ư ê ô â
M t s tên t p tin đ xu t trong values:ô ô â ê â
• String.xml
• Arrays.xml
• Colors.xml
• Dimens.xml
T t c cac t p tin xml trong values, đâ a â ươc m đ u va k t thuc b ng c pơ â ê ă ă
th <resource></resource>.e
2.1 String
• Cung c p tai nguyên d ng văn b n cho ng d ng , cho phep th c hi n cacâ a a ư u ư ê thao tac đ nh d ng va thi t k khac nhau, bao g m ba d ng:i a ê ê ô a
• String
• Stringarray
• QuantityString(Plural)
• String:
• Khai bao:
<String name=”string_name”>Text_string</string>
Trong đo:
String_name: đ nh danh dung đ truy xu t trong XML va Java Code.i ê â Text_string: n i dung l u tr ô ư ư
• Vi d : t p tin strings.xmlu â
<?xml version=”1.0” encoding=”utf-8”?>
<resource>
<string name=”hello”>Hello world!</string>
</resource>
• String:
• Vi d truy xu t va s d ng: khai bao Textview va g n văn b n chou â ư u ă a thu c tinh text.ô
*Truy xu t trong XML:â
<TextView
…
Trang 6*truy xu t trong Java Code:â
Truy xu t tr c ti pâ ư ê
TextView.setText(R.string.hello) ; Dung phương th c getString:ư
textView.setText(getString(R.string.hello));
• StringArray:
• Khai bao:
<String-array name=”String_array_name”>
<item>Text_string</item>
</string-array>
Trong đo:
String_array_name: đ nh d ng dung đ truy xu t trong XML va Javai a ê â Code
Text_string: n i dung l u tr cho t ng item.ô ư ư ư
• Vi d :u
<String-array name=”android_courses”>
<item>Basic Android</item>
<item>Advanced Android</item>
</String-array>
StringArray:
• Truy xu t trong Java Code:â
Resources res = getResources() ;
String[] androidCourses =
Res.getStringArray(R.array.android_courses) ; Quantity : đươ ư uc s d ng cung b s đ m tuy thu c vao quy ô ô ê ô ươ u ưc c a t ng ngôn ng , bao g m cac b đ mư ô ô ê :
Trang 7• Zero
• One
• Two
• Few
• Many
• Other
Thương đươc dung k t h p v i cac đ nh d ng s nguyên.ê ơ ơ i a ô
H th ng t đ ng l a ch n tuy ch n b đ m tuy thu c vao s ngôn ngê ô ư ô ư o o ô ê ô ô ư
s d ng trên thi t b ư u ê i
Quantity:
• Khai bao:
<Plurals name=”plural_name”>
<item quantity=”count”>Text_string</item>
</plurals>
Trong đo:
Plural_name: đ nh dang dung đ truy xu t trong XML va Java Code.i ê â Count: b đ m s d ng.ô ê ư u
Text_string: n i dung l u tr cho t ng item.ô ư ư ư Quantity:
• Vi d :u
<plurals name=”numberOfBooks”>
<item quantity=”one”>One Book found.</item>
<item quantity=”other”>%d book found.</item>
</plurals>
• Truy xuât trong java code:
Resources res = getResources() ; String booksFound =
Res.getQuantityString(R.plurals.numberOfBooks, 2, 2);
Đ nh d ng String:i a
• Truy n tham s : cho phep th c hi n t o cac đo n văn b n co ch aê ô ư ê a a a ư tham s truy n vao.ô ê
• Vi du:
<String name=”Messages”>
Chao%1$s !B n co a %2$d tin nh n m i.ă ơ
</String>
• Truy xu t trong Java Code:â
String messages = getString(R.string.massages) ; Messages = String.format(messages, “HTSI”, 10);
Log.d(”HTSI ”, messages) ; //chao HTSI ! B n co 10 tin nh n m i.a ă ơ
2.2 Color
Trang 8Khai bao tai nguyên s d ng cho cac hi n th mau s c nh phông n n,ư u ê i ă ư ê hinh nh, mau ch … a ư
Co th s d ng cac đ nh d ng mau s cê ư u i a ă :
• #RGB
• #ARGB
• #RRGGBB
• #AARRGGBB
Khai bao :
<color name=“color_name “>hex_color</color>
Trong đo:
Color_name : đ nh d ng dung đ truy xu t trong XML va Java Code.i a ê â Hex_color: đ nh d ng mau s c.i a ă
• Vi d : t p tin u â colors.xml
< ?xml version=“1.0“ encoding= “utf-8“ ?>
<resource>
<color name=“my_blue“>#33B5E5</color>
<color name=”my_green”>#99CC00</color>
</resource>
Vi d : truy xu t va s d ng: Khai bao TextView va thi t l p mau văn b nu â ư u ê â a thông qua thu c tinh textcolor.ô
• Truy xu t trong XMLâ :
<textView
… Android :textColor= ’’@color/my_blu ’’/>
• Truy xu t trong Java Codeâ :
Dung phương th c getcolorư :
Resource res = getResources() ; Int myBlu = res.getColor(R.color.my_blue) ; textView.setTextColor(myblue);
ColorStateList: đ i tô ương cho phep xây d ng m t t p cac s c mau khacư ô â ă nhau hi n th cho cac tr ng thai khac nhauê i a :
• Pressed
• Focused
• Selected
• Checkable
• Checked
• Enable
• Window_focused
Trang 9Khai bao trong th m c res/color, t p tin XML khai bao trong th m c nayư u â ư u
b t đ u va k t thuc b ng c p th <Selector></selector>ă â ê ă ă e
Đ nh danh ColorStateList đi ươc truy xu t thông tên t p tin ( không baoâ â
g m ph n m r ng).ô â ơ ô
ColorStateList
• Khai bao
<selector
Xmlns :android= http://schemas.android.com/apk/res/android>
<item [android :state=“true/false “]
Android:color=“hex_color“/>
</selector>
Trong đo:
State: ch đ nh tr ng thai thông qua true ho c false, n u không co ch đ nhi i a ă ê i i
tr ng thai la binh tha ương
Hex_color: mau tương ng v i tr ng thai.ư ơ a
ColorStateList:
• Vi d : t p tin button_text_selector.xml trong res/coloru â
<selector xmlns:android=”http://schemas.android.com/apk/res/android”>
<item android:state_pressec=”true” android:color=”@color/my_green”/>
<item android:color=”@color/my_blue”/>
</selector>
• Truy xu t s d ng XMLâ ư u
<Button
… Android:textColor=”@color/button_text_selector” />
2.3 Dimen
Khai bao tai nguyên s d ng cho cac đ i lư u a ương kich thươc trong ng d ng.ư u
Co th s d ng cac đ i lê ư u a ương kich thươc sau:
• Dp – dip
• Sp
• Pt
• Px
• Mm
• in
Khai bao:
<dimen name=”dimen_name”>size</dimen>
Trang 10Trong đo:
Dimen_name: đ nh d ng dung đ truy xu t trong XML va Java Codei a ê â Size: đ i la ương đi kem đ nh d ngi a
• Vi d : t p tin dimens.xmlu â
< ?xml version=”1.0” encoding=”utf-8”?>
<resource>
<dimen name=”text_size”>20sp</dimen>
</resource>
Vi d truy xu t va s d ng: Khai bao Button va thi t l p kich thu â ư u ê â ươc văn
b n thông qua thu c tinh textSize.a ô
* Truy xu t trong XML:â
<TextView
… Android:textSize=”@dimen/text_size”/>
* Truy xu t trong Java Code:â Dung phương th c getDimensionư :
Resource res = getResource() ; Float textSize = res.getDimension(R.dimen.text_size) ; textView.setTextSize(textsize);
2.4 TypedArray
Khai bao tai nguyên cho phep xây d ng t p h p ( m ng) l u tr cac lo iư â ơ a ư ư a tai nguyên nh hinh nh, mau s c… ho c co th l u tr cung luc nhi uư a ă ă ê ư ư ê
d ng tai nguyên khac nhau.a
Khai bao:
<array name=”array_name”>
<item>value</item>
</array>
Trong đo:
Trang 11Array_name: đ nh danh dung đ truy xu t trong XML va Java Code.i ê â Value: gia tr l u tri ư ư
Vi d : t p tin arrays.xmlu â
<?xml version=”1.0” encoding=”utf-8”?>
<resource>
<array name = “color”>
<item>@color/my_blue</item>
<item>@color/my_green</item>
<item>#FFBB33</item>
</array>
</resource>
Truy xu t va s d ng trong Java Code:â ư u
typedArray colors = res.obtainTypedArray(R.array.colors);
int myBlue = colors.getColor(2,0);