2017-08-22 13 views
5

Đối với một dự án phòng thu android, tôi tìm thấy một file có tên "drawables.xml" trong "giá trị" thư mụcMục đích của tệp "drawables.xml" trong thư mục "values" là gì?

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> 
    <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> 
    <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> 
    <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> 
    <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> 
    <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> 
</resources> 

mục đích của tập tin này là gì? Tại sao nó tạo một tham chiếu khác đến một đối tượng vẽ có sẵn và tại sao không chỉ sử dụng "@android: drawable/ic_menu_camera"?

Trả lời

9

Có thể nhà phát triển đã có một chút suy nghĩ trong tương lai.

Nhà phát triển có thể đã tham chiếu mã Java android.R.drawable.ic_menu_camera và có bố cục hoặc các thứ khác tham chiếu @android:drawable/ic_menu_camera. Tuy nhiên, nếu tại một số điểm sau này, nhà phát triển cần chuyển đổi từ sử dụng nền tảng có thể vẽ sang tùy chỉnh, thì tất cả các tham chiếu đó sẽ cần được thay đổi.

Bí danh có thể vẽ được thiết lập trong tệp này cho phép mã Java tham chiếu R.drawable.ic_menu_camera và bố cục và các thứ khác tham chiếu @drawable/ic_menu_camera. Ngay bây giờ, các bí danh chỉ ra rằng những drawables "chuyển hướng" để nền tảng drawables. Tuy nhiên, tại một thời điểm nào đó trong tương lai, nhà phát triển có thể thêm tùy chỉnh ic_menu_camera có thể vẽ, xóa bí danh ... và không có gì khác cần thay đổi trong mã Java, bố cục, v.v.

Rất ít ứng dụng tham chiếu đến nền tảng có thể vẽ, và vì vậy bạn sẽ không thấy loại lừa này được sử dụng phần lớn thời gian. Tuy nhiên, đối với các trường hợp ứng dụng tham chiếu đến tài nguyên nền tảng, cách tiếp cận bí danh này có thể làm giảm bảo trì dài hạn.

FWIW, tôi sẽ trình bày chi tiết hơn trong this blog post.

1

Vâng Theo ý kiến ​​của tôi, tệp này là vô dụng vì bạn đã có tên tệp có thể kéo.

Các vấn đề liên quan