La función Auto Mirroring for RTL no funciona en las versiones de Android inferiores a 6.0

Como sabes, Vector Drawables fue agregado en Android Support Library 23.2 que anunció en Android Developer Blog que para todas las versiones de android podemos usarla en lugar de añadir iconos adicionales en diferentes tamaños. Sin embargo, la opción "habilitar auto espejo para RTL" no funciona en las versiones de Android inferiores a 6.0. ¿Hay algún ajuste adicional para usarlo en otras versiones de Android?

Introduzca aquí la descripción de la imagen

Mi proyecto de prueba utiliza un método simple para cambiar la configuración regional de mi aplicación. Estos son los resultados de mi prueba:

Nexus 6P con Android 6.0 que funciona bien:

Introduzca aquí la descripción de la imagen Introduzca aquí la descripción de la imagen

Nexus 7 con Android 5.0:

Introduzca aquí la descripción de la imagen Introduzca aquí la descripción de la imagen

Gracias

Error reportado: link

Flip vector drawable si local es árabe y drawable es auto espejo

 public static Drawable getDrawableLocale(Activity activity, @DrawableRes int drawableResId) { if (!Util.isRTL() || !ResourcesCompat.getDrawable(activity.getResources(), R.drawable.ic_back_white, null).isAutoMirrored()) return ResourcesCompat.getDrawable(activity.getResources(), R.drawable.ic_back_white, null); /** * Flip it for RTl because Kitkat doesn't flip */ Bitmap bitmap = Util.getBitmapFromVectorDrawable(activity, drawableResId); Matrix matrix = new Matrix(); matrix.preScale(-1.0f, 1.0f); bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); return new BitmapDrawable(activity.getResources(), bitmap); } public static Bitmap getBitmapFromVectorDrawable(Context context, int drawableId) { Drawable drawable = getVectorDrawable(context, drawableId); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { drawable = (DrawableCompat.wrap(drawable)).mutate(); } Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap; } public static Drawable getVectorDrawable(Context context, @DrawableRes int idVectorDrawable) { return AppCompatDrawableManager.get().getDrawable(context, idVectorDrawable); } public static boolean isRTL() { return isRTL(Locale.getDefault()); } public static boolean isRTL(Locale locale) { final int directionality = Character.getDirectionality(locale.getDisplayName().charAt(0)); return directionality == Character.DIRECTIONALITY_RIGHT_TO_LEFT || directionality == Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC; } 
  • AnimatedVectorDrawable en la biblioteca de soporte y animación de "pathData"
  • ¿Cómo implementar animated vector drawables usando la biblioteca de soporte de diseño 23.2?
  • AppCompatDrawableManager.get () vs VectorDrawableCompat.create ()
  • VectorDrawableCompat y lona giran, dibujable desaparece en 90/270 grados
  • Recursos de VectorDrawableCompat $ NotFoundException en KitKat y más abajo
  • Android Vector Drawable <defs> no es compatible. ¿Como arreglarlo?
  • Android: obtener recursos $ NotFoundException para abc_ic_ab_back_material
  • Problemas de procesamiento Excepción android.graphics.drawable
  • Herramientas para crear AnimatedVectorDrawable
  • ¿Es posible usar VectorDrawable en Botones y TextViews usando android: DrawableRight?
  • Android vector drawable para el icono del lanzador y otras imágenes en Android N
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.