zoukankan      html  css  js  c++  java
  • 一手遮天 Android

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

    一手遮天 Android - view(文本类): TextView 字体相关

    示例如下:

    /view/text/TextViewDemo2.java

    /**
     * TextView - 文本显示控件
     *
     * 演示 TextView 的字体相关的使用
     */
    
    package com.webabcd.androiddemo.view.text;
    
    import android.annotation.SuppressLint;
    import android.graphics.Typeface;
    import androidx.core.graphics.TypefaceCompat;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.TextPaint;
    import android.widget.TextView;
    
    import com.webabcd.androiddemo.R;
    
    public class TextViewDemo2 extends AppCompatActivity {
    
        private TextView _textView6;
        private TextView _textView8;
        private TextView _textView9;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_view_text_textviewdemo2);
    
            _textView6 = (TextView) findViewById(R.id.textView6);
            _textView8 = (TextView) findViewById(R.id.textView8);
            _textView9 = (TextView) findViewById(R.id.textView9);
    
            sample();
        }
    
        private void sample() {
            // 指定自定义字体:方式一
            // 将字体文件保存到 assets 文件夹(例:assets/fonts/myfont.ttf),然后通过如下方式指定字体
            // Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
            // _textView6.setTypeface(typeface);
    
            // 指定自定义字体:方式二(推荐方式,因为这种方式也可以在 xml 中使用)
            // 将字体文件保存到类似这样的路径 res/font/myfont.ttf,然后通过如下方式指定字体
            @SuppressLint("RestrictedApi")
            Typeface typeface = TypefaceCompat.createFromResourcesFontFile(this, this.getResources(), R.font.myfont, "", Typeface.NORMAL);
            _textView6.setTypeface(typeface);
    
            // 指定字体样式(Typeface.DEFAULT 相当于 xml 中的 typeface="normal";Typeface.NORMAL 相当于 xml 中的 textStyle="normal")
            _textView8.setTypeface(Typeface.DEFAULT, Typeface.BOLD_ITALIC);
    
            // 指定字体样式的高级用法(如果你的字体不支持粗体斜体之类的话,就可以尝试下面这样做)
            TextPaint tp  = _textView9.getPaint();
            tp.setFakeBoldText(true); // 粗体
            tp.setTextSkewX(-0.5f); // 斜体,float 类型,负数表示右斜,整数表示左斜
            tp.setUnderlineText(true); // 下划线
            tp.setStrikeThruText(true); // 删除线
        }
    }
    
    

    /layout/activity_view_text_textviewdemo2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <!--演示 TextView 的字体相关的使用-->
    
        <!--
            typeface - 字体
                normal - 默认字体(在我的设备测试,效果同 sans)
                sans - 非衬线字体(笔划粗细大致一样,没有额外的修饰)
                serif - 衬线字体(笔划的起始和结束部分有额外的修饰)
                monospace - 等宽字体(每一个字符都宽度相同)
        -->
        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:typeface="sans"
            android:textSize="24dp"
            android:text="kkkkkk0123456789" />
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:typeface="serif"
            android:textSize="24dp"
            android:text="0123456789kkkkkk" />
    
        <!--
            通过 typeface="monospace" 来保证每一个字符的宽度都是相同的
        -->
        <TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:typeface="monospace"
            android:textSize="24dp"
            android:text="kkkkkk0123456789" />
        <TextView
            android:id="@+id/textView4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:typeface="monospace"
            android:textSize="24dp"
            android:text="0123456789kkkkkk" />
    
        <!--
            使用自定义字体:把字体文件保存到如下位置 res/font/xxx.ttf
            然后通过 fontFamily="@font/xxx" 来使用此字体(需要用 api26 或以上的 sdk 编译)
        -->
        <TextView
            android:id="@+id/textView5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:fontFamily="@font/myfont"
            android:textSize="24dp"
            android:lines="1"
            android:text="你好 webabcd" />
        <!--
            在 java 中指定自定义字体
        -->
        <TextView
            android:id="@+id/textView6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:typeface="monospace"
            android:textSize="24dp"
            android:lines="1"
            android:text="你好 webabcd" />
    
    
        <!--
            textStyle - 文本样式
                normal, bold, italic
                注:支持“|”运算符
        -->
        <TextView
            android:id="@+id/textView7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textStyle="bold|italic"
            android:textSize="24dp"
            android:lines="1"
            android:text="你好 webabcd" />
        <TextView
            android:id="@+id/textView8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textSize="24dp"
            android:lines="1"
            android:text="你好 webabcd" />
        <TextView
            android:id="@+id/textView9"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:textSize="24dp"
            android:lines="1"
            android:text="你好 webabcd" />
    
    </LinearLayout>
    

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

  • 相关阅读:
    SEO优化技巧:16个方法优化网页中的图片
    《Google官方SEO指南》十一:以恰当的方式推广你的网站
    ASP.NET Eval如何进行数据绑定
    浅析ASP.NET页面缓存的几点体会
    浅谈ADO.NET中的五个主要对象
    WCF 入门 WCF基础知识问与答
    Hibernate第一次课(1)
    谷歌、雅虎支持中文域名搜索 有助提升SEO
    告诉SEO初学者:百度收录并非终极目标
    WF 创建 SQL 持久性数据库
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_view_text_TextViewDemo2.html
Copyright © 2011-2022 走看看