如何将阴影调整为 RTL SlidingMenu

How to adjust shadow to RTL SlidingMenu

我需要调整工作 LTR 应用程序以支持 RTL。

除其他外,我将 slidingMenu 更改为从 RIGHT 打开,但它的阴影看起来不在正确的位置。

如何调整阴影位置?

相关代码:

    menu = new SlidingMenu(this);
    boolean isRtl = getResources().getBoolean(R.bool.is_rtl);
    if (isRtl) {
        menu.setMode(SlidingMenu.RIGHT);
    } else {
        menu.setMode(SlidingMenu.LEFT);
    }

    // Set the touch screen mode
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width); // 
    menu.setShadowDrawable(R.drawable.shadow);

    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setMenu(R.layout.activity_home_leftmenu);

维度:

....
<dimen name="slidingmenu_offset">100dp</dimen>
<dimen name="shadow_width">15dp</dimen>

阴影:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:endColor="#33000000"
        android:centerColor="#11000000"
        android:startColor="#00000000" />

</shape>

你可以像这样旋转 drawable

       <?xml version="1.0" encoding="utf-8"?>
   <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
  android:left="43dp"
  android:top="43dp"
  android:right="43dp"
  android:bottom="43dp">
  <rotate android:fromDegrees="45">
   <shape android:shape="oval">
    <size
     android:width="100dp"
     android:height="200dp" />
    <solid android:color="#6B35B7" />
   </shape>
    </rotate>
   </item>
  </layer-list>

将旋转角度更改为 180 或您想要的任何角度

我添加了旋转角度 基于 android determine if device is in right to left language/layout

<gradient
    android:endColor="#33000000"
    android:centerColor="#11000000"
    android:startColor="#00000000"
    android:angle="@integer/rtl_mirror_flip"
    />