Vit*_*y A 31 android right-to-left
我有几张从右到左看起来不同的图像.是否可以为文件名创建rtl特定的可绘制目录或某些rtl后期修复以自动加载相关图像?看起来ldrtl post-fix,从17 lvl添加,仅适用于layouts目录.
eve*_*otc 39
对于17+(4.2.x +),你可以使用布局方向(ld)资源限定符,从右到左(RTL)你可以使用ldrtl,从左到右(LTR)你可以使用ldltr,例如你可以使用
res/
drawable // Default
drawable-ldltr // LTR
drawable-ldrtl // RTL
另外,与任何其他限定符一样,您可以将它与其他许多限定符组合使用,例如drawable-ldrtl-xhdpi,请注意ldrtl如何在xhdpi之前出现,否则aapt会抱怨.
正如@Dennis在19+(4.4+)中提到的那样,它可以更容易,因为你可以使用autoMirrored
I'm*_*gon 37
回答这个问题已经很晚了,但我想分享一个我刚才发现的方法.我将首先回顾其他人提到的内容.
让我们从规范开始.
我们需要构建类似的东西:
login --> take picture --> win prize
在RTL中,它将成为:
ezirp niw <-- erutcip ekat <-- nigol
所以最大的问题是我们如何翻转可绘制的箭头,让我们称之为arrow_right.png:
-->
在RTL中你希望它是这样的:
<--
对于Android> = 19
正如其他人提到的,我们可以使用autoMirrored=true旗帜.(可从API19获得)
用法:
<ImageView ...
src="@drawable/arrow_right"
autoMirrored="true" />
Run Code Online (Sandbox Code Playgroud)
资产:
??? 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
Run Code Online (Sandbox Code Playgroud)
注意:
arrow_right.png里面drawable-*包含-->备注:唯一的缺点是它不向后兼容.
对于Android <19,选项1
像其他人指出的那样,你可以使用该ldrtl选项.(doc:提供资源)
用法:
<ImageView ...
src="@drawable/arrow_right" />
Run Code Online (Sandbox Code Playgroud)
资产:
??? 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
Run Code Online (Sandbox Code Playgroud)
注意:
arrow_right.png里面drawable-*包含-->arrow_right.png里面drawable-ldrtl-*包含<--.备注:此方法没有任何问题,除非您需要准备10x资产文件.所以它引导我找到下一个选项.
对于Android <19,选项2
此选项将使用rotationY="180"属性.(可从API11获得)
如果你设置rotationY="180"为ImageView,-->将变成<--.
所以我们可以做类似以下的事情.
用法:
<ImageView ...
src="@drawable/arrow_right"
android:rotationY="@integer/angle_rtl_180" />
Run Code Online (Sandbox Code Playgroud)
资产:
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
Run Code Online (Sandbox Code Playgroud)
注意:
arrow_right.png 包含 -->values/integers 包含
<integer name="angle_rtl_180">0</integer>values-ldrtl/integers 包含
<integer name="angle_rtl_180">180</integer>备注:您只需要一组资产,此解决方案可以在API 11中使用,只需添加即可轻松使用android:rotationY="@integer/angle_rtl_180".
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
11871 次 |
| 最近记录: |