Я использую LayoutInflater для раздувания пользовательского макета, чтобы генерировать счета и квитанции в виде растровых изображений, затем я отправляю их на принтер или экспортирую в виде файлов png, например:
LayoutInflater inflater = LayoutInflater.from(getContext());
View view = inflater.inflate(R.layout.layout_invoice, null);
// Populate the view here...
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(paperWidth, View.MeasureSpec.EXACTLY);
int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
view.measure(widthMeasureSpec, heightMeasureSpec);
int width = view.getMeasuredWidth();
int height = view.getMeasuredHeight();
view.layout(0, 0, width, height);
Bitmap reVal = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(reVal);
view.draw(canvas);
Теперь этот код работает отлично, но он раздувает представление на текущем языке устройства. Иногда мне нужно генерировать счета на другом языке. Можно ли как-то раздуть это представление в пользовательской локали?
Примечание. Я пытался изменить локаль перед тем, как надувать представление, а затем сбросить ее:
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = new Locale("fr");
// Inflate the view
// ...
// Reset the locale to the original value
Но по какой-то причине это не работает. Любая помощь будет оценена.