Tôi có một vài hình ảnh trông khác nhau từ phải sang trái. Có thể tạo thư mục có thể kéo rtl cụ thể hoặc một số sửa chữa sau rtl cho tên tệp để tự động tải hình ảnh có liên quan không? Có vẻ như sau sửa lỗi ldrtl, được thêm từ 17 lvl, chỉ tốt cho thư mục bố cục.Cách chỉ định các drawables cụ thể RTL
Trả lời
Nó khá muộn để trả lời câu hỏi này, nhưng tôi muốn chia sẻ một phương pháp mà tôi vừa phát hiện ra. Trước tiên tôi sẽ tóm tắt những gì được đề cập bởi những người khác.
Hãy bắt đầu với một đặc điểm kỹ thuật .
Chúng ta cần phải xây dựng một cái gì đó như:
login --> take picture --> win prize
Trong RTL, nó sẽ trở thành:
ezirp niw <-- erutcip ekat <-- nigol
Vậy câu hỏi lớn đặt ra là làm sao chúng ta lật vào mũi tên drawable, chúng ta hãy gọi nó arrow_right.png
: -->
và trong RTL bạn muốn nó giống như sau: <--
Đối Android> = 19
Như những người khác đã đề cập, chúng ta có thể sử dụng autoMirrored=true
cờ.(available from API19)
Việc sử dụng:
<ImageView ...
src="@drawable/arrow_right"
autoMirrored="true" />
Tài sản:
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
Lưu ý rằng:
arrow_right.png
bêndrawable-*
chứa-->
Ghi chú: Nhược điểm duy nhất là nó không tương thích ngược.
For Android < 19, Lựa chọn 1
Giống như những người khác đã chỉ ra, bạn có thể sử dụng tùy chọn ldrtl
. (doc: Providing Resources)
Việc sử dụng:
<ImageView ...
src="@drawable/arrow_right"
autoMirrored="true" />
Tài sản:
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
├── drawable-ldrtl-xxxhdpi
└── arrow_right.png
├── drawable-ldrtl-xxhdpi
└── arrow_right.png
├── drawable-ldrtl-xhdpi
└── arrow_right.png
├── drawable-ldrtl-hdpi
└── arrow_right.png
├── drawable-ldrtl-mdpi
└── arrow_right.png
Lưu ý rằng:
arrow_right.png
bêndrawable-*
chứa-->
arrow_right.png
bên trongdrawable-ldrtl-*
chứa<--
.
Ghi chú: Không có gì sai với phương pháp này, ngoại trừ bạn cần chuẩn bị như tệp tài sản 10x. Vì vậy, nó dẫn tôi để tìm ra các tùy chọn tiếp theo.
For Android < 19, Lựa chọn 2
Tùy chọn này sẽ được sử dụng rotationY="180"
thuộc tính. (available from API11)
Nếu bạn đặt rotationY="180"
thành ImageView
, -->
sẽ chuyển thành <--
.
Vì vậy, chúng tôi có thể thực hiện một số việc như sau.
Việc sử dụng:
<ImageView ...
src="@drawable/arrow_right"
android:rotationY="@integer/angle_rtl_180" />
Tài sản:
drawable
├── drawable-xxxhdpi
└── arrow_right.png
├── drawable-xxhdpi
└── arrow_right.png
├── drawable-xhdpi
└── arrow_right.png
├── drawable-hdpi
└── arrow_right.png
├── drawable-mdpi
└── arrow_right.png
├── values
└── integers.xml
├── values-ldrtl
└── integers.xml
Lưu ý:
arrow_right.png
chứa-->
values/integers
chứa<integer name="angle_rtl_180">0</integer>
values-ldrtl/integers
chứa<integer name="angle_rtl_180">180</integer>
Ghi chú: Bạn chỉ cần 1 bộ tài sản, và giải pháp này có thể được sử dụng từ API 11, và việc sử dụng đơn giản là đủ bằng cách đơn giản thêm android:rotationY="@integer/angle_rtl_180"
.
Hy vọng điều đó sẽ hữu ích!
Có tùy chọn để tự động phản chiếu hình vẽ. Kiểm tra thuộc tính autoMirrored.
Đối 17+ (4.2.x +), bạn có thể sử dụng theo hướng bố trí (ld) nguồn vòng loại, cho phải sang trái (RTL), bạn có thể sử dụng ldrtl và cho trái sang phải (LTR), bạn có thể sử dụng ldltr, ví dụ: bạn có thể sử dụng
res/ drawable // Default drawable-ldltr // LTR drawable-ldrtl // RTL
Cũng như bất kỳ vòng loại khác mà bạn có thể kết hợp nó với nhiều người khác ví dụ drawable-ldrtl-xhdpi
, xin lưu ý cách ldrtl đến trước xhdpi nếu không, aapt sẽ khiếu nại.
Và như @Dennis đề cập từ 19+ (4.4+) nó được dễ dàng hơn khi bạn có thể sử dụng autoMirrored
Làm thế nào về drawable-fa? Nó hoạt động. –
Có gì drawable-fa, @ Mr.Hyde? Không thể tìm thấy bất kỳ thứ gì trong tài liệu. – lidkxx
@lidkxx Không có gì. Đó là sai lầm của tôi. 'fa' là ngôn ngữ Ba Tư và là ngôn ngữ RTL. Tại thời điểm đó, tôi có nghĩa là làm thế nào tôi nên thêm các 'ldltr' &' ldrtl' vào một thư mục có tên 'drawable-fa' này. Nhưng bây giờ tôi đã có nó; Chỉ cần tạo 'drawable-ldrtl' cho bố cục bằng ngôn ngữ Ba Tư. –
- 1. Hỗ trợ RTL: Chỉ vô hiệu hóa nó cho các thành phần giao diện người dùng cụ thể
- 2. Cách chỉ định triển khai JAXB cụ thể?
- 3. Xác định ngôn ngữ RTL trong Android
- 4. Chỉ nhận các cột cụ thể
- 5. Cách chỉ định trình chuyển đổi loại cụ thể cho một thuộc tính cụ thể bằng cách sử dụng AutoMapper
- 6. Kết hợp nhiều drawables
- 7. Con trỏ đến một địa chỉ cố định cụ thể
- 8. Tôi có thể chỉ định một nhánh cụ thể trên GitHub pull-only (chỉ đọc) không?
- 9. Mô-đun con Git: chỉ định một SHA cụ thể?
- 10. Backbone.Marionette Fade Transition chỉ dành cho các vùng cụ thể?
- 11. Đạn Điểm Định vị với hướng RTL của Ả Rập
- 12. Cách tốt nhất để tạo drawables cho dpi khác nhau
- 13. VIM: Chỉ tìm kiếm giữa các số dòng cụ thể?
- 14. chỉ đọc tờ cụ thể
- 15. Cách xác định mục đích cụ thể của chứng chỉ X509 trong PHP
- 16. JPA: chỉ cập nhật các lĩnh vực cụ thể
- 17. cách cấu hình mailto thành rtl?
- 18. Cho phép người dùng chỉ nhập các thẻ cụ thể
- 19. Sử dụng sed giữa các dòng cụ thể chỉ
- 20. Làm cách nào tôi có thể đặt CSS chỉ cho các trình duyệt IE cụ thể?
- 21. Cách chỉ định phiên bản phụ thuộc cụ thể trong nuspec?
- 22. Cách chỉ định 'git send-email' để gửi thư trên một bản vá cụ thể?
- 23. MongoDB: chỉ cập nhật các trường cụ thể
- 24. Lọc dữ liệu jQuery cho các cột cụ thể Chỉ
- 25. Cách chỉ đăng ký một phần cụ thể của XML
- 26. drawables SearchView trong ActionBar xuất hiện mờ
- 27. Android AnalogClock: thiết lập drawables lập trình
- 28. switch Android drawables tùy chỉnh trái-phải
- 29. Làm cách nào để xóa tiêu đề mặc định chỉ cho các yêu cầu XHR cụ thể trong AngularJS?
- 30. rsync để chỉ sao chép các thư mục cụ thể
Tôi cần hỗ trợ tổ ong, tự động nhân bản được hỗ trợ chỉ bắt đầu từ 19 lvl. –