package net.mitloehner.flocki; import android.graphics.*; import net.mitloehner.flocki.R; import android.content.Context; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; public class DrawView extends View { Paint paint = new Paint(); Paint p2 = new Paint(); int w, h, last = 1; Flocki flocki; Bitmap flocki1 = BitmapFactory.decodeResource(getResources(), R.drawable.flocki1); Bitmap flocki2 = BitmapFactory.decodeResource(getResources(), R.drawable.flocki2); Matrix mirr = new Matrix(); Bitmap flocki1l, flocki2l; public DrawView(Context context, Flocki f) { super(context); paint.setColor(Color.GREEN); p2.setColor(Color.BLACK); flocki = f; mirr.preScale(-1.0f, 1.0f); flocki1l = Bitmap.createBitmap(flocki1, 0, 0, flocki1.getWidth(), flocki1.getHeight(), mirr, false); flocki2l = Bitmap.createBitmap(flocki2, 0, 0, flocki1.getWidth(), flocki1.getHeight(), mirr, false); } public void init() { w = getMeasuredWidth(); h = getMeasuredHeight(); } @Override public void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawRect(0, h, w, 0, paint); // canvas.drawCircle(flocki.x, flocki.y, 3, p2); if (last == 1) { canvas.drawBitmap((flocki.dx>0) ? flocki1 : flocki1l, flocki.x, flocki.y, null); last = 2; } else { canvas.drawBitmap((flocki.dx>0) ? flocki2 : flocki2l, flocki.x, flocki.y, null); last = 1; } } @Override public boolean onTouchEvent(MotionEvent event) { float x = event.getX(); float y = event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: flocki.target(x, y); // show("x/y: " + x + "/" + y); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: break; } return true; } public void show(String s) { Toast.makeText(getContext(), s, 2).show(); } }