android逐渐在两个彩色文本之间切换

时间:2014-01-11 22:08:14

标签: android alpha-transparency textcolor

我有一个垂直搜索栏和两个文本视图。一个textview是透明的,另一个textview设置在另一个textview的顶部。当拖动搜索栏的拇指时,透明文本视图进入视图,而另一个文本视图逐渐变为透明(获得文本逐渐切换的效果)。问题是,当文本是黑色时,这可以正常工作,但我需要为每个单词的每两个字母涂上不同颜色的颜色。我尝试使用setText(Html.fromHtml()和SpannableString来着色文本。两种情况下的着色都很好但我似乎无法在文本之间切换工作,任何想法?

这是文本黑色时的工作原理:

VerticalSeekBar vSeekBar2 = (VerticalSeekBar)findViewById(R.id.SeekBar02);
vSeekBar2.setMax(255);
vSeekBar2.setProgress(255);
vSeekBar2.setOnSeekBarChangeListener(new VerticalSeekBar.OnSeekBarChangeListener() {

@Override
public void onStopTrackingTouch(VerticalSeekBar seekBar) {

}

@Override
public void onStartTrackingTouch(VerticalSeekBar seekBar) {

}

@Override
public void onProgressChanged(VerticalSeekBar seekBar, int progress,
        boolean fromUser) {
    ((TextView) findViewById(R.id.textvu)).setTextColor(Color.argb(progress, 0, 0, 0));
    ((TextView) findViewById(R.id.textvu2)).setTextColor(Color.argb((255-progress), 0, 0, 0));

1 个答案:

答案 0 :(得分:0)

如果使用的是Android 3.0+,请使用setAlpha()上的View属性,而不是更改文本颜色。这使用浮点而不是从0(透明)到1.0(完整)的整数。这样做的好处在于您可以更改整个TextView而不仅仅是Text。

如果使用Android 2.3或更低版本,则可以使用getPaint()上的TextView。然后对给定的setAlpha()对象应用Paint。这将使用0(透明)到255(完整)之间的整数。这不会影响TextView背景的其他属性。