Android:Android中基于文本的图标

时间:2016-11-04 05:23:19

标签: android android-layout fonts android-fonts

我正在开发一个由另一个开发人员开发的项目。要设置图标,他使用了像这样的图标代码。

<string name="icAddress">\ue902</string>
<string name="icAgeGroup">\ue903</string>

我通常使用图标作为imageview,但他已将其用作此类的自定义文本视图

<com.util.CustomTextView
   android:id="@+id/tvIcAddress"
   style="@style/menuIcon"
   android:text="@string/icAddress" />

style.xml

<style name="menuIcon">
    <item name="android:layout_width">@dimen/dpSize50</item>
    <item name="android:gravity">center</item>
    <item name="android:textColor">@color/appColor</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:textSize">@dimen/bigTextSize</item>
</style>

项目在assets文件夹中有一个字体文件,在CustomTextView中他使用setTypeface应用了该字体。我没有得到这里发生的事情。现在我想在某些布局中使用skype图标。我怎么会以同样的方式使用它。如何获得它的图标代码。

这里是CustomTextViewFile

public class CustomTextView extends TextView {

public CustomTextView(Context context) {
    super(context);
    applyCustomFont(context);
}

public CustomTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    applyCustomFont(context);
}

public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    applyCustomFont(context);
}

private void applyCustomFont(Context context) {
    setTypeface(Util.getIns().getCustomFont(context));
 }
}

getCustomFont方法:

public Typeface getCustomFont(Context context) {
    if (customTypeFace == null) {
        customTypeFace = Typeface.createFromAsset(context.getAssets(), "hell.ttf");
        return customTypeFace;
    }
    return customTypeFace;
}

布局的Xml代码:

<LinearLayout
            android:id="@+id/linearMenu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/linearHistory"
                android:layout_width="match_parent"
                android:layout_height="@dimen/dpSize45"
                android:orientation="horizontal">

                <com.util.CustomTextView
                    android:id="@+id/tvIcCaseHistory"
                    style="@style/menuIcon"
                    android:text="@string/icCaseHistory" />

                <com.util.CustomTextView
                    android:id="@+id/tvCaseHistory"
                    style="@style/menuText"
                    android:text="Case History" />
            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="0.25dp"
                android:layout_marginLeft="@dimen/dpSize50"
                android:layout_marginRight="@dimen/dpSize15"

                android:background="@color/appColor" />

            <LinearLayout
                android:id="@+id/linearPrescription"
                android:layout_width="match_parent"
                android:layout_height="@dimen/dpSize45"
                android:orientation="horizontal">

                <com.util.CustomTextView
                    android:id="@+id/tvIcPrescription"
                    style="@style/menuIcon"
                    android:text="@string/icPrescription" />

                <com.util.CustomTextView
                    android:id="@+id/tvPrescription"
                    style="@style/menuText"
                    android:text="Prescription" />

            </LinearLayout>
</LinearLayout>

屏幕截图显示图标:
link

1 个答案:

答案 0 :(得分:0)

值,

  <string name="icAddress">\ue902</string>
  <string name="icAgeGroup">\ue903</string>

是utf编码的字符,并显示他在资源文件夹中使用字体的字符, 可以找到任何utf的相应字符; Here

在您的情况下,customtextview显示指定的字符,应用程序中某处应该有一个图像显示在布局中。