I have few images that looks different on right-to-left. Is it possible to create rtl specific drawable directory or some rtl post-fix for file names to auto-load relevant images? Looks like ldrtl post-fix, added from 17 lvl, is good only for layouts directory.
相关问题
- How can I create this custom Bottom Navigation on
- Bottom Navigation View gets Shrink Down
- How to make that the snackbar action button be sho
- Listening to outgoing sms not working android
- How to create Circular view on android wear?
相关文章
- android开发 怎么把图片放入drawable的文件夹下
- android上如何获取/storage/emulated/下的文件列表
- androidStudio有个箭头不认识
- SQLite不能创建表
- Windows - Android SDK manager not listing any plat
- Animate Recycler View grid when number of columns
- Why is the app closing suddenly without showing an
- Android OverlayItem.setMarker(): Change the marker
It's pretty late to answer this question, but I want to share a method that I just found out. I will first recap what is mentioned by the others.
Let's start with a specification.
We need to build something like:
login --> take picture --> win prize
In RTL, it will become:
ezirp niw <-- erutcip ekat <-- nigol
So the big question is how we flip the drawable arrow, let's call it
arrow_right.png
:-->
and in RTL you want it to be like this:<--
For Android >=19
As others mentioned, we can use the
autoMirrored=true
flag. (available from API19)The usage:
The assets:
Note that:
arrow_right.png
insidedrawable-*
contain-->
Remarks: The only downside is that it's not backward compatible.
For Android <19, Option 1
Like others have pointed out, you can use the
ldrtl
option. (doc: Providing Resources)The usage:
The assets:
Note that:
arrow_right.png
insidedrawable-*
contain-->
arrow_right.png
insidedrawable-ldrtl-*
contain<--
.Remarks: There is nothing wrong with this method, except you need to prepare like 10x assets files. So it leads me to find out the next option.
For Android <19, Option 2
This option will be using the
rotationY="180"
attributes. (available from API11)If you set
rotationY="180"
toImageView
,-->
will turn into<--
.So we can do something like the following.
The usage:
The assets:
Note:
arrow_right.png
contains-->
values/integers
contains<integer name="angle_rtl_180">0</integer>
values-ldrtl/integers
contains<integer name="angle_rtl_180">180</integer>
Remarks: You only need 1 set of assets, and this solution can be used from API 11, and the usage is simple enough by simply adding
android:rotationY="@integer/angle_rtl_180"
.Hope it helps!
There's an option to auto-mirror the drawable. Check autoMirrored attribute.
For 17+ (4.2.x+) you can use layout direction (ld) resources qualifier, for right to left (RTL) you can use ldrtl and for left to right (LTR) you can use ldltr, e.g. you can use
res/ drawable // Default drawable-ldltr // LTR drawable-ldrtl // RTL
Also as any other qualifier you can combine it with many others e.g.
drawable-ldrtl-xhdpi
, please note how ldrtl comes before xhdpi otherwise aapt will complain.And as @Dennis mentioned from 19+ (4.4+) it gets easier as you can use autoMirrored