我用阿拉伯语开发了应用程序,我想支持一大堆Android设备。我想检测设备是否支持阿拉伯语以阿拉伯语加载它或以英语加载。
答案 0 :(得分:1)
如果您只需检查已配置的区域设置,则可以使用<context>.getResources().getConfiguration().locale
(java.util.Locale}。
如果要根据用户的语言环境显示相应的语言资源,框架很容易允许这样做。您将string.xml文件添加到适当的资源文件夹中,如this d.android.com文章中所述,操作系统将使用相应的文件夹。
答案 1 :(得分:0)
使用getAvailableLocales()获取可用语言列表
答案 2 :(得分:0)
您可以使用此方法检查特定语言支持
if (isSupported(baseContext, "हिन्दी"))
languageList.add("हिन्दी")
用阿拉伯语单词替换हिन्दी
public static boolean isSupported(Context context, String text) {
int w = 200, h = 80;
Resources resources = context.getResources();
float scale = resources.getDisplayMetrics().density;
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bitmap = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Bitmap orig = bitmap.copy(conf, false);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.rgb(0, 0, 0));
paint.setTextSize((int) (14 * scale));
// draw text to the Canvas center
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);
int x = (bitmap.getWidth() - bounds.width()) / 2;
int y = (bitmap.getHeight() + bounds.height()) / 2;
canvas.drawText(text, x, y, paint);
boolean res = !orig.sameAs(bitmap);
orig.recycle();
bitmap.recycle();
return res;
}