我正在寻找在Android(针对儿童游戏)中创建随机移动的可点击按钮。
我按照此网站上的代码在屏幕上创建了一些随机移动的圆圈
http://www.techrepublic.com/blog/software-engineer/bouncing-a-ball-on-androids-canvas/

动画单词视图更改为:

public class AnimatedWordsView extends ImageView {

private Context myContext;
int [] xCoOrd = {-1, -2, -3, -4, -5, -6, -7, -8};
int [] yCoOrd = {-1, -2, -3, -4, -5, -6, -7, -8};
int [] xVeloc = {4, 8, 12, 16, 20, 20, 20, 20};
int [] yVeloc = {2, 4, 6, 8, 10, 12, 14, 16};
private Handler handler;
private final int FRAME_RATE = 30;

public AnimatedWordsView(Context context, AttributeSet attributes){

    super(context, attributes);
    myContext = context;
    handler = new Handler();
}

private Runnable run = new Runnable() {
    @Override
    public void run() {
        invalidate();
    }
};

protected void onDraw(Canvas canvas){

    BitmapDrawable [] word = {(BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_blue), (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_green),
            (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_red), (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_yellow),
            (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_green), (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_blue),
            (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_red), (BitmapDrawable) myContext.getResources().getDrawable(R.drawable.word_bubble_yellow)};

    for(int count = 0; count <=7; count++ ) {
        if (xCoOrd[count] < 0 && yCoOrd[count] < 0) {
            xCoOrd[count] = this.getWidth() / 2;
            yCoOrd[count] = this.getHeight() / 2;
        } else {
            xCoOrd[count] += xVeloc[count];
            yCoOrd[count] += yVeloc[count];
        }
        if ((xCoOrd[count] > this.getWidth() - word[count].getBitmap().getWidth()) || (xCoOrd[count] < 0)) {
            xVeloc[count] = xVeloc[count] * -1;
        }
        if ((yCoOrd[count] > this.getHeight() - word[count].getBitmap().getHeight()) || (yCoOrd[count] < 0)) {
            yVeloc[count] = yVeloc[count] * -1;
        }
        canvas.drawBitmap(word[count].getBitmap(),xCoOrd[count],yCoOrd[count],null);
    }
    handler.postDelayed(run, FRAME_RATE);
}


我正在寻找的东西的功能与此相似,但是允许我向圈子中添加文字并使它们可点击

有什么办法吗?

谢谢

最佳答案

您可以使用Canvas的drawText方法绘制文本:

public void drawText (CharSequence text, int start, int end, float x, float y, Paint paint)


像这样:

Paint paint = new Paint();
canvas.drawPaint(paint);
paint.setColor(Color.MY_COLOR);
paint.setTextSize(24);
canvas.drawText("My Text", x, y, paint);


要单击视图,您只需要向其添加onClickListener:

        myAnimatedWordsView.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {

           }
        });

10-05 21:00