Android

Resource Trong Android

Giới thiệu

Resource được hiểu là các hình ảnh, âm thanh, text cứng (đặt trong các thư mục của project) được sử dụng trong project của ứng dụng. Ví dụ như icon, tên của ứng dụng…

Khi tạo một project Android các bạn thấy rằng có một thư mục res (res là viết tắt cả Resource) được tạo ra, và trong thư mục này có khá nhiều thư mục khác nữa chứa các loại resource khác nhau như drawable, color, dimen, string, bool, integer…Và để hiểu rõ hơn Resource trong Android các bạn cùng mình khám phá qua bài viết dưới đây.

Cấu trúc thư mục res trong Android

Trước tiên mình có một hình ảnh của thư mục res và các thư mục con của nó khi tạo project mặc định (Empty Activity) sử dụng Android Studio.

resource-android-0

Chúng ta thấy rằng có các thư mục như drawable, layout, mipmap, values. Ngoài ra các bạn có thể tạo ra các thư mục như anim, raw. Và dươi đây mình sẽ giải thích ý nghĩa của từng thư mục trên

Tên thư mục Ý nghĩa
drawable Là thư mục chứa drawable (hình ảnh, shape, vector) của ứng dụng. Chi tiết hơn về Drawable mình đã viết một bài khá là chi tết về nó ở bài viết Drawable trong Android. 
layout Thư mục này chứa định nghĩa layout của ứng dụng. Ví dụ như layout của activity, fragment…
mipmap Thư mục chứa icon của ứng dụng.
raw Thư mục chứa các file raw
anim Thư mục chứa các animation được định nghĩa bằng xml.
values Thư mục này chứa các file xml định nghĩa các loại resoure khác nhau:

+ attrs.xml: Định nghĩa các thuộc tính sử dụng cho việc tạo view mới. (CustomView).

+ color.xml: Định nghĩa màu sắc được sử dụng trong ứng dụng.

+ dimen.xml: Định nghĩa các giá trị về kích thước, font chữ và thường có đơn vị là dp, dip, sp, px.

+ strings.xml: Chứa các chuỗi được sử dụng trong app. Ví dụ như tên app, tên button, text của TextView…

+ styles.xml: Định nghĩa Theme, Style cho view.

Ngoài ra các bạn có thể tạo ra file xml khác như:

+ bool.xml: Chứa các giá trị boolean.

+ integers.xml: Chứa các giá trị số.

+ arrays.xml: Chứa các mảng.

Trên đây là ý nghĩa của nhưng thư mục nằm trong thư mục res (resource) của project trong Android. Để sử dụng chúng trong xml của như Java như thế nào. Các bạn cùng xem phần dưới đây.

Sử dụng Resource trong Android

Trong Xml

Hầu hết trong file layout chúng ta đều có thể truy cập resource thông qua

resource_type thường có các giá trị sau:

  • drawable
  • color
  • dimen
  • string
  • style
  • bool
  • integer

value có các giá trị:

  • id của file (thường sử dụng trong trường hợp drawable).
  • Trường name định nghĩa trong file đó. Thường được dùng trong các file nằm trong thư mục values.

Ví dụ tôi có các file như sau:

File dimens.xml

File strings.xml

File colors.xml

File styles.xml

Và dưới đây là các sử dụng resoure định nghĩa ở trên.

Ngoài ra chúng ta có thể tạo thêm các resource khác như file trong thư mục values của project như bools.xml (chứa các giá trị logic), integers.xml (chứa các giá trị số nguyên), string_arrays.xml (chứa mảng kiểu string).

Ví dụ

File bools.xml

Sử dụng cho những View nào có thuộc tính chấp nhận là true hay false. Ở đây mình sử dụng CheckBox

File integers.xml

Và được sử dụng cho những thuộc tính của view chấp nhận giá trị kiểu int. Ở đây mình sử dụng SeekBar.

Sử dụng lại resource để định nghĩa resource.

Chúng ta hoàn toàn có thể sử dụng lại những resource đã định nghĩa trước để định nghĩa lại resource mới.

Ví dụ

Một ví dụ khác nữa tôi định nghĩa color và sử dụng color này để định nghĩa style

File colors.xml

File styles.xml

Trong Java

Trong Java để truy cập vào resource trong java chúng ta phải thông qua R.resource_type.value. Với resource_typevalue đã giải thích ở  phần trên. Và sử dụng phương thức

Với getResourcesType là các phương thức:

  • getColor
  • getDrawable
  • getInteger
  • getBoolean
  • getDimension
  • getString

Các bạn có thể gõ “getResources().” để Android Studio gợi ý cho chúng ta các phương thức get các loại resource.

 

resource-android-2

Ví dụ tôi get một số resource đã sử dụng trong bài viết:

Kết luận

Trên đây tôi đã giới thiệu chi tết về resources trong Android. Mong rằng qua bài viết này các bạn có thể vận dụng những kiến thức mà tôi truyền đạt vào công việc của các bạn. Nếu có bất cứ thắc mắc nào có thể để lại bình luận ở phía dưới bài viết hoặc qua fanpage Eitguide Android để được giải đáp.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.