4

ウィジェットのフォントを変更する方法はありますか? ここでいくつかの質問/回答を見てきましたが、できないと言う人もいます。他の人はそれができると言っていますが、多くの情報を提供していません. 私は自分の資産フォルダーに入れたカスタム フォントについて話しています。使いたいフォントはデザインガイドラインの Roboto です。

それが不可能であると述べている他の質問のために、私は主に尋ねたいと思っています。Nexus 7 に Google Currents ウィジェットがあり、そのウィジェットで Roboto フォントを使用しているので、確実に可能ですか?

私が変更したい TextView は、単なるテキストビューです。現時点では、書式設定/スタイルはありません。本当に必要なのは、フォントを Roboto light に変更したことだけです。

これを行う方法についてアドバイスをいただければ幸いです。ありがとう。

私は実際にここで作っているウィジェットをオープンソースにすることを計画しているので、他の人にも役立つでしょう.

4

1 に答える 1

9

ウィジェットのフォントを変更する方法はありますか?

はい。残念ながら、システム フォントしか使用できません。Android 4.1 以降では、次のように Roboto フォントをネイティブに使用できます。

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed

テキストの以前のバージョンで Roboto を使用する唯一の方法は、ビットマップを作成し、次のようにキャンバスにテキストを描画することです。

    Bitmap myBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas myCanvas = new Canvas(myBitmap);
    Paint paint = new Paint();
    Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/myFont.ttf");

    paint.setTypeface(font);
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(...);
    paint.setTextSize(...);
    myCanvas.drawText("Hello World", x, y, paint);

そして、次のように設定しますRemoteView

rViews.setImageViewBitmap(R.id.myImageView, myBitmap);
于 2013-05-05T18:53:50.543 に答える