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?
- Selector de Android Drawable con VectorDrawables srcCompat
- Android Robolectric y elementos decorativos vectoriales
- VectorDrawable no se representa correctamente en API 23
- Vector de etiqueta dibujable no válido
- Biblioteca de soporte de Android: getDrawable independiente si vector o no
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:
Nexus 7 con Android 5.0:
Gracias
- ¿Puedo usar un vector dibujable de la misma manera que usé un parche 9?
- Librería de soporte de Android 23.2 vector drawables are blurry
- ¿Por qué mi SVG no se carga en Vector Asset Studio
- Android cómo cambiar el tamaño (escala) de un icono de vector xml mediante programación
- Coracteres corrompidos o desaparecidos después de ejecutar Proguard
- ¿Se puede utilizar GradientColor para definir un gradiente para un relleno o trazo enteramente en XML?
- Vector dibujable no dibujado correctamente en Android Studio
- Cómo preservar la relación de aspecto de VectorDrawable?
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; }
- Cómo mostrar valores de apertura / cierre / texto en el gráfico de velas de androidplot
- Estado de prueba gratuita de suscripción de IAB