91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android richtext 如何處理字體樣式

小樊
81
2024-11-29 12:19:53
欄目: 編程語言

在Android中,要處理富文本(Rich Text)并自定義字體樣式,可以使用以下方法:

  1. 使用HtmlCompat類:

    HtmlCompat是一個兼容不同Android版本的類,可以用來解析和創建HTML格式的文本。要使用HtmlCompat處理字體樣式,首先需要將HTML字符串轉換為Spannable對象,然后應用樣式。

    示例代碼:

    import android.os.Build;
    import androidx.core.text.HtmlCompat;
    import android.text.Spannable;
    import android.text.Spanned;
    import android.text.style.ForegroundColorSpan;
    import android.text.style.RelativeSizeSpan;
    import android.text.style.StrikethroughSpan;
    import android.text.style.StyleSpan;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            String html = "<p><span style='color:#FF0000;'>紅色</span> <span style='font-size:24px;'>大號</span> <span style='text-decoration:line-through;'>刪除線</span></p>";
            Spannable spannable = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_LEGACY);
    
            // 應用樣式
            ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);
            RelativeSizeSpan bigSpan = new RelativeSizeSpan(2f);
            StrikethroughSpan strikeSpan = new StrikethroughSpan();
            StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
    
            spannable.setSpan(redSpan, 0, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(bigSpan, 7, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(strikeSpan, 14, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(styleSpan, 21, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            // 設置富文本到TextView
            TextView textView = findViewById(R.id.textView);
            textView.setText(spannable);
        }
    }
    
  2. 使用Html類(針對Android API 24及以上版本):

    如果你的應用支持Android API 24及以上版本,可以直接使用Html類處理富文本。但是,請注意,這種方法不支持較舊的Android版本。

    示例代碼:

    import android.os.Build;
    import android.text.Html;
    import android.text.Spannable;
    import android.text.Spanned;
    import android.text.style.ForegroundColorSpan;
    import android.text.style.RelativeSizeSpan;
    import android.text.style.StrikethroughSpan;
    import android.text.style.StyleSpan;
    import android.widget.TextView;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            String html = "<p><span style='color:#FF0000;'>紅色</span> <span style='font-size:24px;'>大號</span> <span style='text-decoration:line-through;'>刪除線</span></p>";
            Spannable spannable = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
    
            // 應用樣式
            ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);
            RelativeSizeSpan bigSpan = new RelativeSizeSpan(2f);
            StrikethroughSpan strikeSpan = new StrikethroughSpan();
            StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
    
            spannable.setSpan(redSpan, 0, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(bigSpan, 7, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(strikeSpan, 14, 21, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            spannable.setSpan(styleSpan, 21, 28, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            // 設置富文本到TextView
            TextView textView = findViewById(R.id.textView);
            textView.setText(spannable);
        }
    }
    

這兩種方法都可以用于處理富文本并自定義字體樣式。根據你的應用需求和目標Android版本,可以選擇合適的方法。

0
邢台县| 前郭尔| 治多县| 岑巩县| 乌拉特后旗| 荥经县| 叶城县| 依安县| 靖安县| 习水县| 丰顺县| 玛沁县| 神木县| 贵州省| 眉山市| 仪陇县| 樟树市| 尚志市| 寻甸| 台山市| 来安县| 乌海市| 铜川市| 万安县| 扎鲁特旗| 瑞金市| 昌平区| 龙山县| 会宁县| 珠海市| 邛崃市| 永清县| 南城县| 信阳市| 双桥区| 马关县| 阿坝| 景洪市| 仁布县| 宜宾市| 横峰县|