Я пишу модуль для Reaction-native, который должен работать на Android.
Чтобы использовать значки типа: FontAwesome, Entypo, Ionicons, MaterialIcons и т. Д.
Я нашел что-то подобное, но я не понял, как это работает или как заставить это работатьв моем случае.
Ссылка: здесь
@TargetApi(21)
private Drawable generateVectorIcon(ReadableMap icon) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
String family = icon.getString("family");
String name = icon.getString("name");
String glyph = icon.getString("glyph");
String color = icon.getString("color");
int size = icon.getInt("size");
if (name != null && name.length() > 0 && name.contains(".")) {
Resources resources = getReactApplicationContext().getResources();
name = name.substring(0, name.lastIndexOf("."));
final int resourceId = resources.getIdentifier(name, "drawable", getReactApplicationContext().getPackageName());
return getReactApplicationContext().getDrawable(resourceId);
}
float scale = getReactApplicationContext().getResources().getDisplayMetrics().density;
String scaleSuffix = "@" + (scale == (int) scale ? Integer.toString((int) scale) : Float.toString(scale)) + "x";
int fontSize = Math.round(size * scale);
Typeface typeface = ReactFontManager.getInstance().getTypeface(family, 0, getReactApplicationContext().getAssets());
Paint paint = new Paint();
paint.setTypeface(typeface);
paint.setColor(Color.parseColor(color));
paint.setTextSize(fontSize);
paint.setAntiAlias(true);
Rect textBounds = new Rect();
paint.getTextBounds(glyph, 0, glyph.length(), textBounds);
Bitmap bitmap = Bitmap.createBitmap(textBounds.width(), textBounds.height(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawText(glyph, -textBounds.left, -textBounds.top, paint);
return new BitmapDrawable(getReactApplicationContext().getResources(), bitmap);
}
Несколько советов?