C# 如何在SpannableString Android中设置不透明度/alpha
如何在Android中使用C# 如何在SpannableString Android中设置不透明度/alpha,c#,android,.net,xamarin,C#,Android,.net,Xamarin,如何在Android中使用SpannableStringBuilder实际设置跨距文本的alpha/不透明度?我想在一个TextView中实现此设计: 主文本当前位置具有完全不透明度/alpha(1.0),子文本Kungstan 43具有84%的不透明度 我已将SpannableStringBuilder设置如下: SpannableStringBuilder OriginText = new SpannableStringBuilder(); OriginText.Append(Origin
SpannableStringBuilder
实际设置跨距文本的alpha/不透明度?我想在一个TextView
中实现此设计:
主文本当前位置
具有完全不透明度/alpha(1.0),子文本Kungstan 43
具有84%的不透明度
我已将SpannableStringBuilder
设置如下:
SpannableStringBuilder OriginText = new SpannableStringBuilder();
OriginText.Append(OriginMainText + ", ");
int SubTextIndex = OriginText.Length();
OriginText.Append(OriginSubText);
OriginText.SetSpan(<what need to set here??>, SubTextIndex, OriginText.Length(), 0)
SpannableStringBuilder OriginText=new SpannableStringBuilder();
追加(OriginMainText+“,”);
int subtedex=OriginText.Length();
附加(OriginSubText);
OriginText.SetSpan(,子索引,OriginText.Length(),0)
我应该在
中放置什么对象?最接近的方法是设置前景色,但我更喜欢它是否有办法设置alpha/不透明度。您可以使用文本外观span
OriginText.setSpan(new TextAppearanceSpan(...), SubTextIndex, OriginText.Length(), 0);
语法是:
TextAppearanceSpan(String family,
int style,
int size,
ColorStateList color,
ColorStateList linkColor)
这里的重要参数是ColorStateList color
,定义如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:color="@color/sample_focused" />
<item android:state_pressed="true"
android:state_enabled="false"
android:color="@color/sample_disabled_pressed" />
<item android:state_enabled="false"
android:color="@color/sample_disabled_not_pressed" />
<item android:color="@color/sample_default" />
</selector>
要从资源中获取颜色定义,可以使用:
ContextCompat.getColor(context, R.color.your_color);
这是一个相当简单的设计。即使没有不透明度,你也可以像你说的那样简单地改变前景颜色。@RacilHilan是的,只改变前景更容易,但需要我定义两种不同的颜色,而不是一种不透明度不同的颜色。这就是为什么我说,我更喜欢如果它有一种方法来设置alphaYes,但是用不透明度定义相同的颜色就像定义两种不同的颜色:)。你可以从我的回答中看出,这并不是减少工作量:)
ContextCompat.getColor(context, R.color.your_color);