Bug Zgłoszone: link
Odwróć wektor rozciągliwej jeśli lokalny jest arabski i odkształcalne jest auto lustro
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;
}
każda odpowiedź proszę? –
@mostafahashim Niestety, wygląda na to, że ta funkcja nie działa w wersji Android poniżej 6.0. Używam różnych 'mipmap' w folderach' mipmap' i 'mipmap-ldrtl', ponieważ każda z ikon musi być zgodna z lokalną. W przypadku innych ikon używam 'VectorDrawable'. – Nava