Вот как я бы это сделал, вместо использования autoMirrored
используйте этот обходной путь, чтобы сделать собственное «автозеркало».
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<group
android:pivotX="12"
android:scaleX="@dimen/rtl_automirror_scale">
<path
android:fillColor="#65666a"
android:pathData="M8.59,16.34l4.58,-4.59 -4.58,-4.59L10,5.75l6,6 -6,6z" />
</group>
</vector>
Здесь я удалил атрибут autoMirror и вместо этого обернул векторный путь тегом <group>
с точкой pivotX
, равной 12 (т. е. середина рисуемого объекта), и scaleX
, указывающим на ресурс Dimen.
В папке с нормальными значениями вы должны указать ресурс как:
<resources>
<item name="rtl_automirror_scale" format="float" type="dimen">1</item>
</resources>
Значение 1 для масштаба означает отсутствие изменений, только нормальное рисование.
Однако затем вы можете предоставить ресурс альтернативных значений для RTL
устройств в values-ldrtl
:
<resources>
<item name="rtl_automirror_scale" format="float" type="dimen">-1</item>
</resources>
Значение -1 означает, что VectorDrawable
будет перевернуто по горизонтали для RTL
устройств.
Затем, когда у вас есть другие VectorDrawables
, которые нужно перевернуть, просто оберните их групповым тегом, как указано выше, указав на тот же размер.
person
Lewis McGeary
schedule
23.10.2016