Thứ Bảy, 22 tháng 12, 2018

Tổ chức và truy cập tài nguyên Android

Còn nhiều mục nữa 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 mã hóa cho ứng dụng, bạn còn quan tâm đến 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 hình, v.v. Các tài nguyên này luôn được duy trì riêng trong các thư mục con khác nhau trong thư mục res / của dự án.

Hướng dẫn này sẽ giải thích cho bạn cách bạn có thể sắp xếp các tài nguyên ứng dụng của mình, 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.

Học lập trình Android
Học lập trình Android

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.Không.Loại thư mục & tài nguyên
1hoạt hình /
Các tệp XML xác định hình ảnh động thuộc tính. Chúng được lưu trong thư mục res / anim / và được truy cập từ lớp R.anim.
2màu/

Các tệp XML xác định danh sách màu của trạng thái. Chúng được lưu trong res / color / và được truy cập từ lớp R.color .
3có thể rút /
Các tệp hình ảnh như các 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, hình động 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 xác định các menu ứng dụng, chẳng hạn như Menu Tùy chọn, Menu ngữ cảnh hoặc Menu phụ. Chúng được lưu trong res / menu / và được truy cập từ lớp R.menu .
6nguyên /
Các tập tin tùy ý để lưu ở dạng thô của chúng. Bạn cần gọi Tài nguyên.openRawResource () bằng 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ụ: đây là một số quy ước tên tệp cho các tài nguyên bạn có thể tạo trong thư mục này

mảng 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 boolean tài nguyên và được 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 .

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

style.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 trong thời gian chạy bằng cách gọi Tài nguyên.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 sẽ 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ể rút ra (ieimages) cho độ phân giải màn hình khác nhau và tài nguyên chuỗi thay thế cho các ngôn ngữ khác nhau. Khi chạy, Học lập trình Android 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 phù hợp cho ứng dụng của bạn.

Để chỉ định các lựa chọn thay thế dành riêng cho cấu hình cho một bộ 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 / có tên ở dạng <resource_name> - <config_qualifier> . Ở đây resource_name sẽ là bất kỳ tài nguyên nào được đề cập trong bảng trên, như bố cục, có thể vẽ được, v.v ... 

Vòng loại sẽ chỉ định một cấu hình riêng 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 để biết danh sách đầy đủ các vòng loại cho các loại tài nguyên khác nhau.

Lưu các 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 chính xác giống như các tệp tài nguyên mặc định như trong ví dụ dưới đây, nhưng các tệp này sẽ có nội dung cụ thể để 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 độ phân giải cao, độ phân giải của nó sẽ cao.

Dưới đây là một 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 độ 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 chỉ đị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  

Tài nguyên truy cập

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

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

Khi ứng dụng Lập trình 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 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à đặt 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 để xác định ImageView với id myimageview trong tệp Bố cục.

Dòng mã thứ hai sử dụngR.drawable.myimage để có được một hình ảnh với tên myimage có sẵn trong thư mục con có thể vẽ được dưới / res .

Thí dụ

Xem xét ví dụ tiếp theo trong đó res / value / chuỗi.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 bằng thông điệp ID bằng ID tài nguyên như sau
TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);
Thí dụ

Hãy xem xét mộ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

Hãy xem xét tệp res / value / chuỗi 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 bố cục 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 đặc biệt khuyên bạn nên kiểm tra chương trước để biết ví dụ hoạt động và kiểm tra xem tôi đã sử dụng các tài nguyên khác nhau ở mức độ cơ bản như thế nào.

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 ...