154

アプリケーションでFont Awesomeを使用しようとしています。 を使用してフォントを統合できましたがTypeface.createFromAsset()、このフォントが提供するアイコンも使用したいのですが、これまでのところそれができていません。

この特定のフォントには、メディア プレーヤー コントロール、ファイル システム アクセス、矢印などのために、Unicode Private Use Area (PUA) 内にアイコンが含まれています。

Android でアイコンや記号を含むフォントを使用した人はいますか?

4

15 に答える 15

29

IcoMoon を試す: http://icomoon.io

  • 必要なアイコンを選択してください
  • 各アイコンに文字を割り当てます
  • フォントをダウンロードする

たとえば、再生アイコンを選択し、文字「P」を割り当てて、ファイルicomoon.ttfをアセット フォルダーにダウンロードしたとします。これは、アイコンを表示する方法です。

xml:

<TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="48sp"
  android:text="P" />

ジャバ:

Typeface typeface = Typeface.createFromAsset(getAssets(), "icomoon.ttf");
textView.setTypeface(typeface);

アイコン フォントの使用方法の説明と、アイコンをさらに美しくするためのグラデーションの追加を含む、美しい Android アプリの作成に関する講演を行いました: http://www.sqisland.com/talks/beautiful-android

アイコンのフォントの説明はスライド 34 から始まります: http://www.sqisland.com/talks/beautiful-android/#34

于 2013-03-05T05:01:52.420 に答える
4

string.xml に文字列を追加せずにプログラムで setText が必要な場合

ここでその16進コードを参照してください:

http://fortawesome.github.io/Font-Awesome/cheatsheet/

 を置き換えます。0xf066に

 Typeface typeface = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf");
    textView.setTypeface(typeface);
    textView.setText(new String(new char[]{0xf006 }));
于 2015-08-02T05:41:47.353 に答える
2

テキスト プロパティをプログラムで設定するために、このヘルパー クラスを C# (Xamarin) で作成しました。それは私にとってかなりうまくいきます:

internal static class FontAwesomeManager
{
    private static readonly Typeface AwesomeFont = Typeface.CreateFromAsset(App.Application.Context.Assets, "FontAwesome.ttf");

    private static readonly Dictionary<FontAwesomeIcon, string> IconMap = new Dictionary<FontAwesomeIcon, string>
    {
        {FontAwesomeIcon.Bars, "\uf0c9"},
        {FontAwesomeIcon.Calendar, "\uf073"},
        {FontAwesomeIcon.Child, "\uf1ae"},
        {FontAwesomeIcon.Cog, "\uf013"},
        {FontAwesomeIcon.Eye, "\uf06e"},
        {FontAwesomeIcon.Filter, "\uf0b0"},
        {FontAwesomeIcon.Link, "\uf0c1"},
        {FontAwesomeIcon.ListOrderedList, "\uf0cb"},
        {FontAwesomeIcon.PencilSquareOutline, "\uf044"},
        {FontAwesomeIcon.Picture, "\uf03e"},
        {FontAwesomeIcon.PlayCircleOutline, "\uf01d"},
        {FontAwesomeIcon.SignOut, "\uf08b"},
        {FontAwesomeIcon.Sliders, "\uf1de"}
    };

    public static void Awesomify(this TextView view, FontAwesomeIcon icon)
    {
        var iconString = IconMap[icon];

        view.Text = iconString;
        view.SetTypeface(AwesomeFont, TypefaceStyle.Normal);
    }
}

enum FontAwesomeIcon
{
    Bars,
    Calendar,
    Child,
    Cog,
    Eye,
    Filter,
    Link,
    ListOrderedList,
    PencilSquareOutline,
    Picture,
    PlayCircleOutline,
    SignOut,
    Sliders
}

Javaに変換するのは簡単だと思います。それが誰かを助けることを願っています!

于 2015-12-18T01:54:02.993 に答える
1

レイアウト xml ファイルで直接使用でき、使用する必要がない別の優れたソリューションがありますsetTypeface

Joan Zapata のIconifyです。Iconify v2の新機能については、こちらを参照してください。build.gradleファイルに依存関係を追加するだけで簡単に使用できる 9 つの異なるフォント ライブラリが含まれています。

レイアウト xml ファイルでは、次のウィジェットから選択できます。

com.joanzapata.iconify.widget.IconTextview
com.joanzapata.iconify.widget.IconButton
com.joanzapata.iconify.widget.IconToggleButton
于 2016-06-04T11:17:33.077 に答える
1

FontView ライブラリを使用すると、通常/Unicode フォント文字をアプリのアイコン/グラフィックとして使用できます。アセットまたはネットワークの場所を介してフォントをロードできます。

このライブラリの利点は次のとおりです。

1 - it takes care of remote resources for you
2 - scales the font size in dynamically sized views
3 - allows the font to easily be styled.

https://github.com/shellum/fontView

例:

Layout:

<com.finalhack.fontview.FontView
        android:id="@+id/someActionIcon"
        android:layout_width="80dp"
        android:layout_height="80dp" />

Java:

fontView.setupFont("fonts/font.ttf", character, FontView.ImageType.CIRCLE);
fontView.addForegroundColor(Color.RED);
fontView.addBackgroundColor(Color.WHITE);
于 2013-05-29T21:05:50.503 に答える
0

誰かがプログラムで追加する方法を知りたい場合は、この方法で行う必要があります。

   button_info.setText(R.string.icon_heart);
    button_info.append(" Hallo"); //<<--- This is the tricky part
于 2015-06-26T22:00:10.653 に答える
0

私はパーティーに少し遅れましたが、これを可能にするカスタム ビューを作成しました。デフォルトでは entypo に設定されていますが、任意のアイコンフォントを使用するように変更できます: ここで確認してください: github.com/MarsVard/IconView

// ライブラリを編集するのは古く、もうサポートされていません...新しいものはこちらhttps://github.com/MarsVard/IonIconView

于 2013-05-21T16:50:47.960 に答える