我正在创建一个Typing Tutor应用程序,它具有键入数字,字母和字符的选项。在选择特定选项时,数组将加载任一符号。以下是我的问题:
加载数组的活动显示符号并在活动的随机位置显示这些符号。为此我为每个符号提供了alpha动画,这些符号出现一段时间并消失,另一个符号出现在它之后。但我没有得到理想的结果。 alpha动画应用于整个画布视图而不是每个符号。我想要每个符号的alpha动画而不是整个画布视图。这是代码:
/*
* Create a view that displays the animation.
* This view will display the alpha animation
* The array is loaded and the elements are
* displayed in the random manner
*/
class AnimationView extends View
{
Animation animation;
String str;
Random randomLocationXY, randomValues;
public AnimationView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
private void createAnimation(Canvas canvas)
{
animation = new AlphaAnimation(0.0f, 1.0f);
animation.setRepeatCount(50);
animation.setRepeatMode(Animation.REVERSE);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
animation.setDuration(10000l);
startAnimation(animation);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
randomLocationXY = new Random();
//randomValues = new Random();
if(animation == null)
{
createAnimation(canvas);
}
Paint p = new Paint();
p.setColor(Color.RED);
p.setTextSize(40);
p.setTypeface(Typeface.SANS_SERIF);
for(int i=0; i< sel_array.length;i++)
{
int x = randomLocationXY.nextInt(canvas.getWidth());
int y = randomLocationXY.nextInt(canvas.getHeight());
str = sel_array[i];
//draws the text at random location
canvas.drawText(str, x, y, p);
}
}
}
答案 0 :(得分:0)
嗯..据我所知,在这种情况下你必须创建你的动画(可能根据你的需要移动文本字符串的位置,使它看起来像一个动画。另一个但处理器密集的解决方案是提供使用不同位图的动画(使用canvas.drawBitMap)。