安卓中如何使用iconfont字体图标

先来说一下字体图标的优缺点吧~

优点: 

      1. 可以高度自定义图标的样式(包括大小和颜色),对于个人开发者尤其适用 

      2. 可以减少项目和安装包的大小(特别你的项目中有很多图片icon时,效果将是M级) 

      3. 几乎可以忽略屏幕大小和分辨率,做到更好的适配

      4. 使用简单 

      …… 

缺点: 
      1. 只能是一些简单的icon,不能代替如背景图、9图等资源 

      2. 一些需要文字说明的icon,图片资源将会是更好的选择 

      3. 对设计的要求更高,不同icon可能拥有不同的边距,这时要切换icon时还要设置大小 

      4. 由于边距的存在可能存在无法填满控件的情况 

      5. 无法在Android studio中进行实时预览

iconfont对于客户端应用来说有很多便捷:

      1、自由变化大小

      2、自由修改颜色

      3、可以添加一些视觉效果如:阴影、旋转、透明度。

      4、比单位的图片更节省资源


操作步骤

第一步:. 首先去 http://www.iconfont.cn/ 图标库选择自己要用的图标下载,下载后得到个压缩文件并解压,最后得到一个压缩文件,解压后得到如下文件,其实我们需要的只有两个,就是我框出的那两个文件

有一些不是你下载,你不知道unicode的图标可以下载 Fontlab stadio 这个软件去查看对应的unicode
第二步打开 res/values/strings.xml,添加 string 值;
<string name="icon">&#xe616</string>
第三步打开 activity_main.xml,添加 string 值到 TextView:在这里你可以调整图标的大小,颜色
<TextView
  android:id="@+id/text"
  android:textColor="@color/colorPrimary"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/icon" />

第四步:在MainActivity 为 TextView 指定字体图标
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  Typeface iconfont = Typeface.createFromAsset(getAssets(), "iconfont/iconfont.ttf");
  TextView textview = (TextView)findViewById(R.id.text);
  textview.setTypeface(iconfont);
}

效果如下图所示: 图标原来是灰色,这里我指定了是蓝色



就是这么简单完事。但是我们发现在activity 代码中setTypeface 很没有必要。因为我们整个应用有很多页面都需要设置字体图标时,这样设置会有很多,垃圾代码产生。这时我们可以用一个简单的自定义view去继承TextView 就解决问题,代码如下
public class IconView extends TextView {
    public IconView(Context context) {
        super(context);

    }


    public IconView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView(context);
    }

    private void initView(Context context) {
        Typeface typeface = Typeface.createFromAsset(context.getAssets(),"iconfont.ttf");
        setTypeface(typeface);
    }
然后在布局文件中使用这个自定义View即可
<com.example.wpschen.myapplication.IconView
        android:id="@+id/text"
        android:textSize="20sp"
        android:textColor="@color/colorPrimary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/icon" />

最后提一个我遇到的小问题,最开始我下载的图标的unicode是&#xe1517 总共是8位数,但每次一运行就崩溃,会报这样的错误
03-01 17:12:41.020 4970-4970/com.example.wpschen.myapplication E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
03-01 17:12:41.055 4970-4970/com.example.wpschen.myapplication E/dalvikvm: VM aborting
03-01 17:12:41.055 4970-4970/com.example.wpschen.myapplication A/libc: Fatal signal 6 (SIGABRT) at 0x0000136a (code=-6), thread 4970 (n.myapplication)


最后又换了一个图标资源,unicode是常见的7位数,这样才得以解决,但至于8位数unicode的为什么造成崩溃,百度好多也没有什么好的解决办法,如果你看到这里,你也可以去尝试解决一下然后告诉我阿~






  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UniApp是一个基于Vue.js的跨平台开发框架,可以用于开发iOS、Android、H5等多个平台的应用程序。在UniApp使用字体图标可以通过以下步骤实现: 1. 下载字体图标库:首先需要选择一个合适的字体图标库,比如阿里巴巴矢量图标库(https://www.iconfont.cn/)或者FontAwesome(https://fontawesome.com/)。在这些网站上选择并下载你需要的字体图标。 2. 导入字体图标文件:将下载的字体图标文件解压,并将其字体文件(通常是以.ttf或.otf为后缀的文件)复制到UniApp项目的`static`目录下。 3. 在`App.vue`引入字体图标样式:在`App.vue`文件的`<style>`标签添加以下代码,引入字体图标样式: ```css @font-face { font-family: 'iconfont'; src: url('./static/iconfont.ttf') format('truetype'); } .iconfont { font-family: 'iconfont' !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ``` 其,`./static/iconfont.ttf`是字体文件的路径,根据实际情况进行修改。 4. 使用字体图标:在需要使用字体图标的地方,使用`<text>`标签,并添加`class`属性为`iconfont`,同时设置`content`属性为对应的字体图标代码。例如: ```html <text class="iconfont"></text> ``` 其,``是字体图标的Unicode码,根据实际情况进行修改。 至此,你已经成功地在UniApp使用字体图标了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值