`
abc20899
  • 浏览: 935980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用TypefaceSpan

阅读更多
package de.myproject.text.style;

import android.graphics.Paint;
import android.graphics.Typeface;
import android.text.TextPaint;
import android.text.style.TypefaceSpan;

    public class CustomTypefaceSpan extends TypefaceSpan {
        private final Typeface newType;

        public CustomTypefaceSpan(String family, Typeface type) {
            super(family);
            newType = type;
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            applyCustomTypeFace(ds, newType);
        }

        @Override
        public void updateMeasureState(TextPaint paint) {
            applyCustomTypeFace(paint, newType);
        }

        private static void applyCustomTypeFace(Paint paint, Typeface tf) {
            int oldStyle;
            Typeface old = paint.getTypeface();
            if (old == null) {
                oldStyle = 0;
            } else {
                oldStyle = old.getStyle();
            }

            int fake = oldStyle & ~tf.getStyle();
            if ((fake & Typeface.BOLD) != 0) {
                paint.setFakeBoldText(true);
            }

            if ((fake & Typeface.ITALIC) != 0) {
                paint.setTextSkewX(-0.25f);
            }

            paint.setTypeface(tf);
        }
    }
分享到:
评论

相关推荐

    Android实现类似朋友圈评论的功能(TextView分段操作)

    4. 对每条评论的用户名应用CharacterStyle,例如使用ForegroundColorSpan改变颜色,或者使用TypefaceSpan改变字体。 5. 使用TextView的append()方法将处理过的SpannableString添加到TextView中。记得在每次添加后...

    spannableString使用

    - `TypefaceSpan`:用于设置字体类型,例如"monospace"或"serif"。 - `AbsoluteSizeSpan`:用于设置文本的绝对大小。 - `RelativeSizeSpan`:用于相对调整文本大小。 - `StrikethroughSpan`:用于添加删除线。 - `...

    同一个textview,字体颜色不一样

    如果你还需要改变字体,可以使用`TypefaceSpan`来设置字体样式。例如,如果你想让第二段文本使用斜体,你可以这样做: ```java TypefaceSpan italicSpan = new TypefaceSpan("monospace"); // 用"monospace"替换...

    Android中的SpannableString类使用方法的代码清单.pdf

    除了上述的DynamicDrawableSpan和URLSpan,SpannableString还支持其他类型的Span,比如ForegroundColorSpan用于改变文本颜色,BackgroundColorSpan用于设置背景色,TypefaceSpan用于更改字体,ImageSpan用于插入图片...

    Android中SpannableString实例程序

    通过使用Spans(例如ForegroundColorSpan、BackgroundColorSpan、TypefaceSpan等),我们可以控制文本的各个部分的样式。 在`SpannableDemo`这个项目中,我们可以期待看到以下核心知识点: 1. **SpannableString...

    Android TextView文本样式

    在本主题中,我们将深入探讨如何使用自定义字体来增强TextView的文本样式,特别是通过使用`.ttf`(TrueType Font)文件。`.ttf`文件是一种标准的字体格式,允许开发者引入各种独特的字体风格,从而提升应用的视觉...

    Android theme简单使用示例.zip

    如果要在主题中应用自定义字体,可以创建一个`TypefaceSpan`类并将其应用于`TextView`的样式。同时,将字体文件放在`assets`目录下,然后在样式中设置`textStyle`: ```xml ...

    多样式TextView

    例如,你可以使用 `new TypefaceSpan("monospace")` 来将部分文本设置为等宽字体。 3. **ForegroundColorSpan** - 这个类用于改变文本的颜色。通过创建 `ForegroundColorSpan` 实例并设置起始和结束索引,可以将...

    android 电子数字字体

    除了基本的字体应用,还可以利用Android的`SpannableString`和`TypefaceSpan`类来动态改变部分文本的字体,或者通过自定义`View`来实现更具特色的数字显示效果。 总的来说,选择和应用合适的电子数字字体能够显著...

    Android TextView使用SpannableString设置复合文本的方法详解

    - TypefaceSpan用于更改文本的字体。 - URLSpan用于创建点击后可跳转的超链接。 在实际开发中,开发者可以根据需求选择合适的Span类型,通过setSpan方法将它们应用到特定的文本片段上,从而实现TextView的复合文本...

    android 改变字体大小和字体

    本文将深入探讨如何在Android应用中实现这一功能,主要包括文本视图(TextView)的基本使用、动态修改文本大小以及更换字体。 一、TextView基本使用 TextView是Android UI布局中的一个重要组件,用于显示文本。在...

    Android-渐变颜色渐变文字渐变图像GradualshowcolorAndResourse

    要实现文字颜色的渐变,开发者通常需要自定义`TextView`或者使用第三方库,如`Calligraphy`或`TypefaceSpan`。通过设置自定义的`Paint`对象,并应用上述的`LinearGradient`或`RadialGradient`,可以为文字绘制出...

    RichText-master.zip

    1. `CharacterStyle`:作用于单个字符,如`ForegroundColorSpan`用于设置文字颜色,`TypefaceSpan`用于设置字体。 2. `ParagraphStyle`:作用于段落,如`BulletSpan`创建项目符号,`QuoteSpan`添加引号。 3. `...

    SpannableString特殊字符加颜色

    除了ForegroundColorSpan外,还可以使用其他Span类型,比如BackgroundColorSpan改变背景色,TypefaceSpan改变字体,UnderlineSpan添加下划线等。这些Span可以组合使用,以实现复杂的文本格式化。 在实际应用中,...

    SpannableString-Chat:一个使用 Spannablestring 而不是 html 的聊天 UI 的简单 Android 演示项目

    2. **Span 对象**:比如 `ForegroundColorSpan`、`BackgroundColorSpan`、`TypefaceSpan` 等,它们是 SpannableString 可以使用的不同样式标记。例如,`ForegroundColorSpan` 可以改变文本颜色,`TypefaceSpan` 可以...

    android style SpannableStringBuilder

    除了颜色,我们还可以设置其他类型的跨度,如TypefaceSpan(改变字体),ClickableSpan(使部分文本可点击并执行相应动作),URLSpan(将文本转换为链接)等。这些跨度可以组合使用,实现更丰富的文本展示效果。 在...

    android-support-v7-appcompat

    此外,AppCompat还包含了一些实用工具类,如ColorStateList、TypefaceSpan等,方便开发者处理颜色和文字样式。 七、依赖与集成 在Android Studio项目中,要使用AppCompat库,只需在build.gradle文件中添加对应的...

    Android-MultiFontViewKotlin库可用于在XML中动态地为视图选择自定义字体

    例如,可以创建一个`FontSpan`类,继承自`AbsoluteSizeSpan`或`TypefaceSpan`,然后在代码中动态地设置`MultiFontTextView`的文本内容。 除了基本的字体切换,`MultiFontTextView`还支持其他高级功能,比如动态改变...

    android之为TextView打上多标签

    例如,我们可以创建一个SpannableString,然后对每个标签应用不同的CharacterStyle,如ForegroundColorSpan、BackgroundColorSpan或TypefaceSpan,以改变标签的颜色、背景色或字体。通过这种方式,我们可以实现多个...

    安卓 修改状态栏背景颜色 字体 布局(你还为电量栏丑陋而烦恼吗,只需一行代码,解决)

    如果你希望统一整个应用的风格,可以考虑使用`fitsSystemWindows`属性来让内容填充到状态栏下方,或者使用沉浸式状态栏。 最后,关于Eyes-master这个文件,由于没有更多的信息,无法确定它是否与状态栏修改直接相关...

Global site tag (gtag.js) - Google Analytics