태그 보관물: font-awesome

font-awesome

기본 Android 애플리케이션에서“Font Awesome”의 아이콘 및 기호를 사용하는 방법 Font Awesome 을 사용하려고

내 응용 프로그램에서 Font Awesome 을 사용하려고 하는데을 사용하여 글꼴 을 통합 할 수 Typeface.createFromAsset()있었지만이 글꼴에서 제공하는 아이콘을 사용하고 싶지만 지금까지는 그렇게 할 수 없었습니다.

이 특정 글꼴에는 미디어 플레이어 컨트롤, 파일 시스템 액세스, 화살표 등과 같은 PUA (Unicode Private Use Area) 내에 아이콘이 포함되어 있습니다.

안드로이드에서 아이콘과 기호가 포함 된 글꼴을 사용한 사람이 있습니까?



답변

Font Awesome이 내 안드로이드 앱에서 제대로 작동하는 것 같습니다. 나는 다음을 수행했다.

  1. 복사 fontawesome-webfont.ttf내 assests 폴더에
  2. 이 페이지를 사용하여 원하는 아이콘의 문자 엔티티를 찾았습니다. http://fortawesome.github.io/Font-Awesome/cheatsheet/
  3. 각 아이콘에 대해 strings.xml에 항목을 작성했습니다. 예를 들어 마음을 위해 :

    <string name="icon_heart">&#xf004;</string>
  4. 내 XML 레이아웃의 관점에서 상기 항목을 참조했습니다.

     <Button
         android:id="@+id/like"
         style="?android:attr/buttonStyleSmall"
         ...
         android:text="@string/icon_heart" />
    
  5. 내 onCreate 메소드에 글꼴을로드하고 적절한 뷰에 맞게 설정하십시오.

    Typeface font = Typeface.createFromAsset( getAssets(), "fontawesome-webfont.ttf" );
    ...
    Button button = (Button)findViewById( R.id.like );
    button.setTypeface(font);
    

답변

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


답변

어쩌면 너무 늦었지만 같은 요구가 있었기 때문에 이것을 게시했습니다 https://github.com/liltof/font-awsome-for-android
Keith Corwin이 말한 것처럼 사용할 수있는 멋진 Android 글꼴 xml 버전입니다.

그것이 다른 사람들을 도울 수 있기를 바랍니다.


답변

위와 같이 훌륭한 예이며 훌륭하게 작동합니다.

Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf" );

Button button = (Button)findViewById( R.id.like );
button.setTypeface(font);

그러나! > 이것은 xml에서 설정 한 버튼 안의 문자열 인 경우 작동합니다.

<string name="icon_heart">&#xf004;</string>
button.setText(getString(R.string.icon_heart));

동적으로 추가 해야하는 경우 다음을 사용할 수 있습니다.

String iconHeart = "&#xf004;";
String valHexStr = iconHeart.replace("&#x", "").replace(";", "");
long valLong = Long.parseLong(valHexStr,16);
button.setText((char) valLong + "");


답변

string.xml에 문자열을 추가하지 않고 프로그래밍 방식의 setText를 원할 경우

16 진 코드를 여기에서보십시오 :

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

대체 & # xf066; ~ 0xf066

 Typeface typeface = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf");
    textView.setTypeface(typeface);
    textView.setText(new String(new char[]{0xf006 }));


답변

이 목적을 위해 설계된 작고 유용한 라이브러리 가 있습니다 .

dependencies {
    compile 'com.shamanland:fonticon:0.1.9'
}

Google Play 데모를 가져 옵니다 .

여기에 이미지 설명을 입력하십시오

레이아웃에 글꼴 기반 아이콘을 쉽게 추가 할 수 있습니다.

<com.shamanland.fonticon.FontIconView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/ic_android"
    android:textSize="@dimen/icon_size"
    android:textColor="@color/icon_color"
    />

Drawablexml에서 와 같이 font-icon을 부 풀릴 수 있습니다 .

<?xml version="1.0" encoding="utf-8"?>
<font-icon
    xmlns:android="http://schemas.android.com/apk/res-auto"
    android:text="@string/ic_android"
    android:textSize="@dimen/big_icon_size"
    android:textColor="@color/green_170"
    />

자바 코드 :

Drawable icon = FontIconDrawable.inflate(getResources(), R.xml.ic_android);

연결:


답변

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로 변환하기에 충분히 쉬울 것이라고 생각합니다. 그것이 누군가를 돕기를 바랍니다!