创建TextView,为其设置动画,然后删除。什么是最好的方法?

时间:2014-07-25 19:27:07

标签: android android-canvas android-animation

我正在学习android,我有一个测试游戏,我正在绘制自定义视图。 (例如画布提取)。

在游戏中的某些点,我希望弹出文本数字然后淡出。这是游戏中的常见特征,用于“关键命中”等。例如,这张图片:

Critical hit

最好的方法是什么,我是否需要以编程方式创建TextView并以某种方式覆盖它们?

或者我应该做canvas.drawText(?,以某种方式跟踪我需要绘制多少文本?如果我采用这种方法,我将如何最好地跟踪所有必要的文本。

然后我会使用valueanimator淡出每一个。

我很想听听体验程序员就如何最好地解决这个问题提出一些建议。

注意 - 由于文本可能会重叠视图,我认为在代码中创建textviews是更好的选择。也许如果我实例化说5或6个我可以轮流使用它们以避免垃圾收集?我不知道

1 个答案:

答案 0 :(得分:0)

最后,我这样做了:

创建一个包含几个TextView的数组,作为成员变量。我能够通过首先将Activity布局更改为RelativeLayout来实现此目的。然后我将这段代码放在构造函数中来实例化它们:

popup_scores_ = new TextView[num_popups];
RelativeLayout test = (RelativeLayout) findViewById(R.id.activity_layout);
for (int i = 0; i < num_popups; ++i) {
            popup_scores_ [i] = new TextView(getApplicationContext());
            LayoutParams textViewLayoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            test.addView(popup_scores_[i], textViewLayoutParams);
            popup_scores_[i].setVisibility(TextView.INVISIBLE);
        }

然后每次都需要显示“褪色弹出分数”。我会将其中一个textview设置为visible,并使用ObjectAnimator(从1.0f到0.0f)为它的alpha属性设置动画。

我会在文本视图中进行轮换,这样即使连续出现多个分数,弹出窗口仍然会逐渐消失。达到“num_popups”的限制。

评论您是否需要详细说明此方法,或者您认为我可以更轻松地完成此方法。还在这里学习。