android中一个TextView实现不同的样式

xiaoxiao2021-02-28  99

android中一个TextView实现不同的样式  第一步: styles文件中设置要显示的不同的样式,因为要显示不同的样式,所以样式至少需要设置两个。 <style name="mText_style1">     <item name="android:textSize">12sp</item>  根据需要自行添加 <item name="android:textColor">#00ff00</item>  </style> <style name="mText_style2">    <item name="android:textSize">12sp</item> <item name="android:textColor">#ff0000</item> </style> 第二步: xml文件中添加TextView标签 <TextView         android:gravity="center"         android:id="@+id/mText"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:text="将要实现不同的样式,这是效果"     /> 第三步: 获取TextView后,设置样式 mText = (TextView) findViewById(R.id.mText); // 首先拿到TextView内容的长度 int len = mText.getText().length(); //创建SpannableString对象,参数为TextView的内容 SpannableString mSpannableString = new SpannableString(mText.getText().toString()); //开始设置第一种样式 mSpannableString.setSpan(new TextAppearanceSpan(getActivity(), R.style.money_style2)               , 0, len - 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //开始设置第二种样式 mSpannableString.setSpan(new TextAppearanceSpan(getActivity(), R.style.money_style1)               , len - 4, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //根据需求,可以这是N种样式,如果设置了相同开始位置和结束位置的样式,以最后设置的为准。          //把设置完的样式赋值TextView 用于显示出来。 mText.setText(mSpannableString); mSpannableString.setSpan(Object what, int start, int end, int flags) //        Object what  new TextAppearanceSpan(getActivity(), 样式)  样式即 styles 设置的样式 //        int start     开始的位置 //        int end       结束的位置 //        int flags     Spannable的样式 运行前的效果:

运行后的效果:

      

转载请注明原文地址: https://www.6miu.com/read-51309.html

最新回复(0)