フォントからビットマップを作る

font-bitmap.png

Androidのデフォルトアイコン
場所としてはこのへん

/Applications/sdk/platforms/android-19/data/res/drawable-land-mdpi

使い方

R.drawableだと自分の用意した画像だけが出てくるけど、
android.R.drawableにするとデフォルトで用意されている画像が出てくる
例えば

android.R.drawable.alert_dark_frame

フォント編

final Typeface typeface = Typeface.createFromAsset(context.getAssets(), "icon.ttf");
 
        final Paint paint = new Paint();
        final String iconTxt = String.valueOf((char) 0xE947);
 
        paint.setAntiAlias(true);
        paint.setColor(Color.parseColor("#FF4683ea"));
        paint.setTypeface(typeface);
        paint.setShadowLayer(1, 0, 0, Color.argb(64, 32, 32, 32));
        paint.setTextSize(mTextSize);
        paint.getTextBounds(iconTxt, 0, iconTxt.length(), new Rect());
        final FontMetrics fm = paint.getFontMetrics();// フォントマトリックス
        final int mtw = (int) paint.measureText(iconTxt);// 幅
        final int fmHeight = (int) (Math.abs(fm.top) + fm.bottom);// 高さ
        final Bitmap bmp = Bitmap.createBitmap(mtw + 2 * 2, fmHeight + 1 * 2, Bitmap.Config.ARGB_8888);
        final Canvas cv = new Canvas(bmp);
        cv.drawText(iconTxt, 1, Math.abs(fm.ascent) + 1, paint);
 
        final Paint w_paint2 = new Paint();
        w_paint2.setAntiAlias(true);
        w_paint2.setTypeface(typeface);
        w_paint2.setStrokeWidth(5.0f);
        w_paint2.setColor(Color.parseColor("#ffffff"));
        w_paint2.setStyle(Paint.Style.STROKE);
        final String txt2 = String.valueOf((char) 0xE947);
        w_paint2.setTextSize(mTextSize);
        w_paint2.getTextBounds(txt2, 0, txt2.length(), new Rect());
        final FontMetrics fm2 = w_paint2.getFontMetrics();// フォントマトリックス
        cv.drawText(txt2, 1, Math.abs(fm2.ascent) + 1, w_paint2);

android font

サポートサイト Wikidot.com androidfont