Android应用修改字体

首先第一种方法是重写控件(以Textview为例):

 1、Android在写程序的时候谷歌早已将所有字体都默认好了具体是什么字体,自己也没去研究,所以假如说要让程序的字体变成自己想要的字体也是件不容易的事情,首先你要先下载字体库(后缀为ttf),英文的字体库还不算大,而一般来说中文的字体库就很大,所以可以更加程序里面出现的文字,对字体库进行裁剪。要下载字体库的可以上网下载,网上一堆的是,csdn里面的比较抠门,字体库居然还要积分,都不想吐槽了。

2、下载完字体库后,你工程目录assets文件夹中,新建一个文件夹“fonts”用于放字体库,然后再加字体库(.ttf)放到fonts文件夹下,当然你的字体库文件不能以中文命名。

3、重写Textview,创建一个类继承TextView,代码如下:

public class ChineseTextView extends TextView {


    public ChineseTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        /*
         * 必须事先在assets底下创建一fonts文件夹 并放入要使用的字体文件(.ttf)
         * 并提供相对路径给creatFromAsset()来创建Typeface对象
         */
        Typeface fontFace = Typeface.createFromAsset(context.getAssets(),
                "fonts/Microsoft.ttf");
        // 字体文件必须是true type font的格式(ttf);
        // 当使用外部字体却又发现字体没有变化的时候(以 Droid Sans代替),通常是因为
        // 这个字体android没有支持,而非你的程序发生了错误
        setTypeface(fontFace);
        }
    }

4、在xml布局文件直接用这个类代替Textview便可以:

 <com.example.androidsetting.ChineseTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView" />

再来说说第二种方法,这种方法不需要继承Textview,不过还是需要字体库。

 前两个步骤更上面的一样,这里复制一下。

 1、Android在写程序的时候谷歌早已将所有字体都默认好了具体是什么字体,自己也没去研究,所以假如说要让程序的字体变成自己想要的字体也是件不容易的事情,首先你要先下载字体库(后缀为ttf),英文的字体库还不算大,而一般来说中文的字体库就很大,所以可以更加程序里面出现的文字,对字体库进行裁剪。要下载字体库的可以上网下载,网上一堆的是,csdn里面的比较抠门,字体库居然还要积分,都不想吐槽了。

2、下载完字体库后,你工程目录assets文件夹中,新建一个文件夹“fonts”用于放字体库,然后再加字体库(.ttf)放到fonts文件夹下,当然你的字体库文件不能以中文命名。、

3、先创建一个方法,changeFont(ViewGroup root){},用来遍历当前页面的控件,目的就是为了给同一类控件进行样式设置,所以用这种方法也能比较快的进行字体设置

protected void changeFont(ViewGroup root) {       
        Typeface tf = Typeface.createFromAsset(this.getAssets(),
        "fonts/Microsoft.ttf");
        for(int i = 0; i <root.getChildCount(); i++) {
                 View v = root.getChildAt(i);
                 if(v instanceof Button) {
                     ((Button)v).setTypeface(tf);
                     ((Button)v).setTextSize(15);
                     ((Button)v).setTextColor(Color.GRAY);
                 } else if(v instanceof TextView ) {
                     ((TextView)v).setTypeface(tf);
                     ((TextView)v).setTextSize(15);
                     ((TextView)v).setTextColor(Color.GRAY);
                 } else if(v instanceof EditText) {
                         ((EditText)v).setTypeface(tf);
                         ((EditText)v).setTextSize(15);
                         ((EditText)v).setTextColor(Color.GRAY);
                 } else if(v instanceof ViewGroup) {
                         changeFont((ViewGroup)v);
                 }
         }
     }

4、在onCreate方法中,当然在setContentView(R.layout.activity_main);后面去实现

ViewGroup root=(ViewGroup) this.getWindow().getDecorView();  //获取本Activity下的获取最外层控件
    changeFont(root);

上面两种方法都介绍了,下面总结一下这两种方法的感受,我觉得都各有优缺点。

第一种方法,不需要在activity中增加代码,直接修改控件的就行了,但是呢,因为一页面有需要控件都是有文字的,如button,checkbox,一堆,所以要是全都改的话不是要全部重新这些控件。第二种方法的话在activity里面增加代码,那么就差不多都要在所有activity里面增加代码,然后没了。对了第一种方法,其实是在xml里面去实现,就是说你的控件每出现一次就要TextView一次,用ScrollView来说明问题,ScrollView里面有很多个Textview,都是通过第一种方法去修改字体,第一次加载界面,会加载一段时间(看你加载的多少)才将页面显示出来,然后ScrollView往下拖动,之前看不到的textview要加载一遍,然后这期间有会有稍微的卡顿,这就是第一种方法最致命的一个缺点。相比之下,第二种方法不会这样,因为它是先加载界面在修改。但是同样,这两种方法,第一次进入界面的时候都会先加载一段时间才能进去,体验不是很好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio中,你可以通过以下步骤来修改字体: 1. 首先,打开Android Studio并进入File菜单。 2. 在File菜单中选择Settings选项,然后选择Editor -> Font选项。 3. 在Font选项中,你可以看到三个不同的字体样式:Primary font,Secondary font和Console font。 - Primary font用于编辑器中的普通文本。 - Secondary font用于编辑器中的代码注释。 - Console font用于终端窗口中的文本。 4. 对于每个字体样式,你可以单击右侧的下拉菜单来选择所需的字体。 5. 在选择字体之后,你可以根据需要调整字体的大小和行间距。 6. 最后,单击Apply按钮以应用所做的更改。 此外,如果你想导入外部的字体文件来使用,可以按照以下步骤进行操作: 1. 将你的字体文件(通常是.ttf或.otf格式)复制到项目的资源目录中,例如res/font/。 2. 在XML布局文件或代码中的TextView中使用android:fontFamily属性来引用该字体文件。例如:android:fontFamily="@font/myfont"。 - 其中@font/myfont是指字体文件的路径和名称。 3. 保存并构建你的项目,字体将会被应用到相应的TextView上。 请注意,如果你想自定义Android Studio的编辑器字体,你可以在Settings中找到Appearance & Behavior -> Appearance选项,并选择Override default font by(not recommended)选项。在该选项中,你可以设置字体名称和大小来修改默认字体。 希望以上信息对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android studio中TextView改变字体的两种方式(如仿宋、隶书)](https://blog.csdn.net/lanrenxiaowen/article/details/54410079)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Android Studio字体修改](https://blog.csdn.net/lyp_1020k/article/details/78895567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值