我可以阅读Android设备支持的语言吗?我知道我们可以阅读当前的语言,但我想阅读所有语言。
Afaik,它在System / Fonts中。但是我可以在不使设备生根的情况下访问它吗?
编辑:我在Moto-G上尝试了Locale,列表中包含古吉拉特语,这似乎是因为v.5.0.2支持该语言,但该设备不支持古吉拉特语字体。需要知道特定设备支持哪些字体,以便我可以决定是否渲染它们。答案 0 :(得分:0)
这对我有用!
public void checkSupportedFonts() {
mLanguageFonts = new HashMap<String, String>();
mLanguageFonts.put("en-US", "ab");
mLanguageFonts.put("hi-IN", "अआ");
mLanguageFonts.put("bn-IN", "অআ");
mLanguageFonts.put("gu-IN", "અઆ");
mLanguageFonts.put("mr-IN", "अआ");
mLanguageFonts.put("ta-IN", "அஆ");
mLanguageFonts.put("te-IN", "అఆ");
mLanguageFonts.put("kn-IN", "ಅಆ");
mLanguageFonts.put("ml-IN", "അആ");
Iterator<Entry<String, String>> languageIterator = mLanguageFonts.entrySet().iterator();
while (languageIterator.hasNext()) {
Map.Entry<String, String> pair = (Entry<String, String>)languageIterator.next();
String font = pair.getValue().toString();
if(isSupported(font))
Log.d(TAG, "language is supported : " + pair.getKey());
else
Log.d(TAG, "language is unsupported : " + pair.getKey());
}
}
private boolean isSupported(String text)
{
String char1 = text.substring(0, 1);
text = text.substring(1, 2);
Bitmap bitmap1 = generateBitmap(context, char1);
Bitmap bitmap2 = generateBitmap(context, text);
boolean res = !bitmap1.sameAs(bitmap2);
bitmap1.recycle();
bitmap2.recycle();
return res;
}