1
TextView内の1文字を点滅させることはできますか?android blink character in textview
「spannable」を使用すると、色、フォントの太さなどを設定できますが、瞬きについては何も見つかりませんでした。
「アニメーション」AFAIKは全体の視点で機能します。
提案者ですか?
TextView内の1文字を点滅させることはできますか?android blink character in textview
「spannable」を使用すると、色、フォントの太さなどを設定できますが、瞬きについては何も見つかりませんでした。
「アニメーション」AFAIKは全体の視点で機能します。
提案者ですか?
あなたがそのカスタムクラスで再生を開始することができます
class FCS extends ForegroundColorSpan implements TimeAnimator.TimeListener {
private TextView tv;
private int[] colors;
private int color;
TimeAnimator animator;
ArgbEvaluator evaluator;
public FCS(TextView tv, int[] colors) {
super(colors[0]);
this.tv = tv;
this.colors = colors;
animator = new TimeAnimator();
animator.setTimeListener(this);
evaluator = new ArgbEvaluator();
animator.start();
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(color);
}
@Override
public void onTimeUpdate(TimeAnimator animation, long totalTime, long deltaTime) {
float sin = (float) (Math.sin(Math.PI * totalTime/1000f));
float fraction = sin * sin;
// float fraction = (float) (-Math.cos(2*Math.PI * totalTime/1000f) + 1)/2f;
color = (int) evaluator.evaluate(fraction, colors[0], colors[1]);
tv.invalidate();
if (totalTime > 20000) {
animator.end();
}
}
}
テストコード(Activity#onCreate
メソッド内に配置):
TextView tv = new TextView(this);
tv.setTextSize(40);
int[] colors = {
tv.getCurrentTextColor(),
Color.RED,
};
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append("Poeta de ");
int start = ssb.length();
ssb.append("magnum stella, dignus sectam!");
ssb.setSpan(new FCS(tv, colors), start, start+1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(ssb);
setContentView(tv);
'BackgroundColorSpan' /' ForegroundColorSpan'、オーバーライド 'updateDrawState(TextPaint延長ds) 'を設定し、新しい' ds.bgColor'を設定した後に 'TextView'を再描画するように強制します。 – pskink
そして、あなたは' Animation 'で 'ValueAnimator' /' ObjectAnimator'や 'TimeAnimator'あなたのユーザーの場合)、あなたはspを拡張しようとしましたか私は上記のans? – pskink
あなたのヒントをありがとう。まだ私は宿題をしてスパンについての文書を読んでいなければなりません。少なくとも私は今どこから始めるべきかを知っています。 – Vladimir