Thứ Năm, 12 tháng 7, 2018

Tài nguyên Android Tổ chức & Truy cập

Có nhiều mục khác mà bạn sử dụng để xây dựng một ứng dụng lập trình Android tốt. Ngoài việc viết mã cho ứng dụng, bạn chăm sóc nhiều tài nguyên khác như nội dung tĩnh mà mã của bạn sử dụng, chẳng hạn như bitmap, màu sắc, định nghĩa bố cục, chuỗi giao diện người dùng, hướng dẫn hoạt ảnh và hơn thế nữa. Các tài nguyên này luôn được duy trì riêng biệt trong các thư mục con khác nhau trong thư mục res / của dự án.

NIIT-ICT
ảnh minh họa


Hướng dẫn này sẽ giải thích cho bạn cách bạn có thể tổ chức các tài nguyên ứng dụng của bạn, chỉ định các tài nguyên thay thế và truy cập chúng trong các ứng dụng của bạn.

Sắp xếp tài nguyên trong Android Studio

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java  
      res/
         drawable/  
            icon.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml 
     
Sr.No.Loại thư mục và tài nguyên
1hoạt hình /

Các tệp XML xác định các hoạt ảnh thuộc tính. Chúng được lưu trong res / anim / folder và được truy cập từ lớp R.anim .
2màu/

Các tệp XML định nghĩa một danh sách trạng thái của các màu. Chúng được lưu trong res / color / và được truy cập từ lớp R.color .
3drawable /

Các tệp hình ảnh như tệp .png, .jpg, .gif hoặc XML được biên dịch thành bitmap, danh sách trạng thái, hình dạng, hoạt ảnh có thể vẽ được. Chúng được lưu trong res / drawable / và được truy cập từ lớp R.drawable .
4bố trí/

Các tệp XML xác định bố cục giao diện người dùng. Chúng được lưu trong res / layout / và được truy cập từ lớp R.layout .
5thực đơn/

Các tệp XML định nghĩa các menu ứng dụng, chẳng hạn như Trình đơn tùy chọn, Trình đơn ngữ cảnh hoặc Trình đơn phụ. Chúng được lưu trong res / menu / và được truy cập từ lớp R.menu .
6thô /

Các tệp tùy ý để lưu dưới dạng thô của chúng. Bạn cần gọi hàm Resources.openRawResource () với ID tài nguyên, là R.raw.filename để mở các tệp thô như vậy.
7giá trị /

Các tệp XML chứa các giá trị đơn giản, chẳng hạn như chuỗi, số nguyên và màu sắc. Ví dụ, dưới đây là một số quy ước về tên tệp cho các tài nguyên bạn có thể tạo trong thư mục này -

arrays.xml cho các mảng tài nguyên và được truy cập từ lớp R.array .

integers.xml cho các số nguyên tài nguyên và được truy cập từ lớp R.integer .

bools.xml cho tài nguyên boolean và truy cập từ lớp R.bool.

colors.xml cho các giá trị màu và được truy cập từ lớp R.color .

dimens.xml cho các giá trị thứ nguyên và được truy cập từ lớp R.dimen .

strings.xml cho các giá trị chuỗi và được truy cập từ lớp R.string .

styles.xml cho các kiểu và được truy cập từ lớp R.style .
số 8xml /

Các tệp XML tùy ý có thể được đọc khi chạy bằng cách gọi hàm Resources.getXML () . Bạn có thể lưu các tệp cấu hình khác nhau ở đây sẽ được sử dụng trong thời gian chạy.

Tài nguyên thay thế

Ứng dụng của bạn nên cung cấp các tài nguyên thay thế để hỗ trợ các cấu hình thiết bị cụ thể. Ví dụ: bạn nên bao gồm các tài nguyên có thể vẽ thay thế (ieimages) cho độ phân giải màn hình khác nhau và các tài nguyên chuỗi thay thế cho các ngôn ngữ khác nhau. Khi chạy, Android phát hiện cấu hình thiết bị hiện tại và tải các tài nguyên thích hợp cho ứng dụng của bạn.

Để chỉ định các lựa chọn thay thế cấu hình cụ thể cho một tập hợp các tài nguyên, hãy làm theo các bước sau

Tạo một thư mục mới trong res / named trong form <resources_name> - <config_qualifier> . Ở đây resources_name sẽ là bất kỳ tài nguyên nào được đề cập trong bảng trên, như bố trí, có thể vẽ được. Vòng loại sẽ chỉ định một cấu hình riêng lẻ mà các tài nguyên này sẽ được sử dụng. Bạn có thể kiểm tra tài liệu chính thức để có danh sách đầy đủ các vòng loại cho các loại tài nguyên khác nhau.

Lưu tài nguyên thay thế tương ứng trong thư mục mới này. Các tệp tài nguyên phải được đặt tên giống hệt như tệp tài nguyên mặc định như được hiển thị trong ví dụ bên dưới, nhưng các tệp này sẽ có nội dung cụ thể cho phương án thay thế. Ví dụ: mặc dù tên tệp hình ảnh sẽ giống nhau nhưng đối với màn hình có độ phân giải cao, độ phân giải của nó sẽ cao.

Dưới đây là ví dụ chỉ định hình ảnh cho màn hình mặc định và hình ảnh thay thế cho màn hình có độ phân giải cao.

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         values/  
            strings.xml 

Dưới đây là một ví dụ khác xác định bố cục cho ngôn ngữ mặc định và bố cục thay thế cho ngôn ngữ Ả Rập.

MyProject/
   app/
      manifest/
         AndroidManifest.xml
   java/
      MyActivity.java   
      res/
         drawable/  
            icon.png
            background.png
         drawable-hdpi/  
            icon.png
            background.png  
         layout/  
            activity_main.xml
            info.xml
         layout-ar/
            main.xml
         values/  
            strings.xml 

Truy cập tài nguyên

Trong quá trình phát triển ứng dụng của bạn, bạn sẽ cần phải truy cập các tài nguyên được xác định trong mã của bạn hoặc trong các tệp XML bố trí của bạn. Phần sau giải thích cách truy cập tài nguyên của bạn trong cả hai kịch bản

Truy cập tài nguyên trong mã

Khi ứng dụng Android của bạn được biên dịch, một lớp R sẽ được tạo, chứa ID tài nguyên cho tất cả các tài nguyên có sẵn trong thư mục res / của bạn . Bạn có thể sử dụng lớp R để truy cập tài nguyên đó bằng cách sử dụng thư mục con và tên tài nguyên hoặc ID tài nguyên trực tiếp.

Thí dụ

Để truy cập res / drawable / myimage.png và thiết lập ImageView, bạn sẽ sử dụng mã sau:
ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);
Ở đây dòng đầu tiên của mã sử dụng R.id.myimageview để có được ImageView được xác định với id my image view trong tệp Bố cục. Dòng thứ hai của mã làm cho việc sử dụng R.drawable.myimage để có được một hình ảnh với tên my image có sẵn trong thư mục con có thể kéo dưới / res .

Thí dụ

Xem xét ví dụ tiếp theo trong đó res / values ​​/ strings.xml có định nghĩa sau:
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string  name="hello">Hello, World!</string>
</resources>
Bây giờ bạn có thể đặt văn bản trên một đối tượng TextView với ID msg bằng cách sử dụng một ID tài nguyên như sau:
TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);
Thí dụ

Xem xét bố cục res / layout / activity_main.xml với định nghĩa sau:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />
      
</LinearLayout>
Mã ứng dụng này sẽ tải bố cục này cho một Hoạt động, trong phương thức onCreate () như sau:
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

Truy cập tài nguyên trong XML

Xem xét tệp XML res / values ​​/ strings.xml tài nguyên sau đây bao gồm tài nguyên màu và tài nguyên chuỗi 
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>
Bây giờ bạn có thể sử dụng các tài nguyên này trong tệp sơ đồ bố trí sau để đặt màu văn bản và chuỗi văn bản như sau:
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:textColor="@color/opaque_red"
   android:text="@string/hello" />
Bây giờ nếu bạn sẽ đi qua chương trước một lần nữa, nơi tôi đã giải thích Hello World! Ví dụ, và tôi chắc chắn bạn sẽ hiểu rõ hơn về tất cả các khái niệm được giải thích trong chương này.

Vì vậy, tôi khuyên bạn nên kiểm tra chương trước để biết ví dụ làm việc và kiểm tra cách tôi đã sử dụng các tài nguyên khác nhau ở cấp độ rất cơ bản.

Không có nhận xét nào:

Đăng nhận xét

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...