I am creating a game. Most of the computation is done in a custom View
class which contains a grid of custom Squares which extend imageview.
Here's some code to describe what's happening:
public class GameView extends View {
public Square squares[] = null;
public GameView(Context context, AttributeSet a) {
super(context, a);
setFocusable(true);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
squares = new Square[numSquares];
}
public void resetGame()
{
}
public void restartGame()
{
}
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
int X = (int)event.getX();
int Y = (int)event.getY();
switch (eventaction)
{
case MotionEvent.ACTION_DOWN:
currentTouchIndex = checkForSquareTouch(X, Y);
if(currentTouchIndex >= 0)
{
squares[currentTouchIndex].select();
((MainActivity)this.getContext()).startSquareAnimation();
.........
return true;
}
Thats the main View. Square implementation:
public class Square extends ImageView {
public Square(Context context, AttributeSet attrs, int x, int y,
int squareWidth, boolean operator, int textS, Typeface f) {
super(context, attrs);
{
this.setImageResource(R.drawable.chalkbox);
this.getDrawable().setBounds(x, y, x + squareWidth, y +
squareWidth);
this.setAlpha(10);
}
protected void onDraw(Canvas canvas) {
Paint foreground = new Paint(Paint.ANTI_ALIAS_FLAG);
foreground.setStyle(Style.FILL);
foreground.setTextSize(textSize);
foreground.setColor(Color.WHITE);
foreground.setTextScaleX(1);
foreground.setTextAlign(Paint.Align.CENTER);
foreground.setTypeface(font);
int left = this.getDrawable().getBounds().left;
int right = this.getDrawable().getBounds().right;
int top = this.getDrawable().getBounds().top;
int bottom = this.getDrawable().getBounds().bottom;
if (invalidMove) {
}
if (isOperator) {
if (text.equals("+"))
bottom += 10;
if (text.equals("/"))
bottom += 5;
if (text.equals("x") || text.equals("/"))
foreground.setTextSize(textSize - 5);
else
foreground.setTextSize(textSize);
}
this.getDrawable().draw(canvas);
canvas.drawText(text, (left + right) / 2, ((top + bottom) / 2) +
10, foreground);
}
Hope that gives you a view of the structure. I'm trying to animate the
Square, so that when a player presses on a Square, the Square
brightens and then fades again when they lift their finger off. The
problem is that the call to square[0].startAnimation() does not seem
to be working and the animation is not playing. Am I doing something
wrong?
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en