Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class BoardView extends SurfaceView implements SurfaceHolder.Callback{
- Context mContext;
- private BoardThread thread;
- private float box_x = 140;
- private float box_y = 378;
- ImageView i = (ImageView) findViewById(R.id.box_view);
- Bitmap box =
- (BitmapFactory.decodeResource
- (getResources(), R.drawable.box));
- private float boxWidth = box.getWidth();
- private float boxHeight = box.getHeight();
- public BoardView(Context context){
- super(context);
- //surfaceHolder provides canvas that we draw on
- getHolder().addCallback(this);
- // controls drawings
- thread = new BoardThread(getHolder(),this);
- //intercepts touch events
- setFocusable(true);
- }
- @Override
- public void onDraw(Canvas canvas){
- canvas.drawColor(Color.WHITE);
- //draw box and set start location
- canvas.drawBitmap(box, box_x - (boxWidth/2),
- box_y - (boxHeight/2), null);
- }
- @Override
- public boolean onTouchEvent(MotionEvent event){
- //boolean mode = false;
- if(event.getAction() == MotionEvent.ACTION_DOWN){
- //int x = (int)event.getX();
- //int y = (int)event.getY();
- //if (x > box_x && x < box_x + 29 && y > box_y && y < box_y + 30){
- //mode = true;
- box_x = (int)event.getX();
- //}
- }
- if(event.getAction() == MotionEvent.ACTION_MOVE) {
- //int x = (int)event.getX();
- //int y = (int)event.getY();
- //if (mode == true){
- box_x = (int)event.getX();
- //}
- }
- invalidate();
- return true;
- }
- @Override
- public void surfaceChanged(SurfaceHolder holder,
- int format, int width, int height ){
- }
- @Override
- public void surfaceCreated(SurfaceHolder holder){
- thread.startRunning(true);
- thread.start();
- }
- @Override
- public void surfaceDestroyed(SurfaceHolder holder){
- thread.startRunning(false);
- thread.stop();
- }
- }
- RectF rect = new RectF(x,y, x + box.getWidth(), y+box.geHeight());
- if(rect.contains(touchX, touchY)) {
- // You hit the box, allow dragging...
- }
- package teste.com.br.teste;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.view.MotionEvent;
- import android.view.View;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Created by Tacila on 03/07
- */
- public class Game extends View {
- private Context context;
- private BitmaptArrastavel bmArrastavel;
- private BitmaptArrastavel bmArrastavel2;
- private BitmaptArrastavel bmArrastavelTeste;
- private List<BitmaptArrastavel> btms;
- private BitmaptArrastavel[] btmsAtivas;
- private BitmaptArrastavel[] lake;
- private BitmaptArrastavel[] ativos;
- private int qntDeItens = 5;
- public Game(Context context) {
- super(context);
- this.context = context;
- init();
- }
- public void init() {
- btms = new ArrayList<BitmaptArrastavel>();
- btmsAtivas = new BitmaptArrastavel[1];
- ativos=new BitmaptArrastavel[1];
- lake = new BitmaptArrastavel[3];
- lake[0] = new BitmaptArrastavel(escalaBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.cartadc)), 200);
- lake[1] = new BitmaptArrastavel(escalaBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.cartaao)), 210);
- lake[2] = new BitmaptArrastavel(escalaBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.cartake)), 220);
- btms.add(bmArrastavel);
- btms.add(bmArrastavelTeste);
- btms.add(bmArrastavel2);
- }
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- canvas.drawRGB(0,0,139);
- for(int i = 0; i<=2; i++){
- lake[i].drawOnCanvas(canvas);
- }
- }
- public void travarArr(float x, float y ){
- for(int i = 0; i<=2 ; i++){
- if(lake[i].isDentro(x,y)){
- ativos[0]=lake[i];
- }
- }
- }
- public void destravarBitmap() {
- ativos[0]=null;
- }
- public Bitmap escalaBitmap(Bitmap bm) {
- return Bitmap.createScaledBitmap(bm, 200, 300, false);
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- final int action = event.getActionMasked();
- switch (action) {
- case MotionEvent.ACTION_DOWN:
- System.out.println("Dentro do MotionEvent.ActionDown");
- travarArr(event.getX(),event.getY());
- break;
- case MotionEvent.ACTION_UP:
- case MotionEvent.ACTION_CANCEL:
- System.out.println("Dentro do MotionEvent.ActionUP e ActionCancel tenho q entrar no destrava ");
- destravarBitmap();
- break;
- case MotionEvent.ACTION_MOVE:
- System.out.println("Dentro do MotionEvent.ActionMove");
- for(int i = 0; i<ativos.length;i++){
- if(ativos[i]!=null){
- ativos[i].mover((int)event.getX(),(int)event.getY());
- invalidate();
- }
- }
- break;
- case MotionEvent.ACTION_POINTER_DOWN:
- System.out.println("Dentro do MotionEvent.ActionPointerDown");
- travarArr(event.getX(), event.getY());
- break;
- case MotionEvent.ACTION_POINTER_UP:
- System.out.println("Dentro do MotionEvent.ActionPointerUp");
- destravarBitmap();
- break;
- default:
- return super.onTouchEvent(event);
- }
- return true;
- }
- // int rotation = 0;
- //
- // public Bitmap vertical() {
- // Matrix matrix = new Matrix();
- // matrix.postRotate(90);
- // Bitmap bm = escalaBitmap(BitmapFactory.decodeResource(context.getResources(), R.drawable.carta4c));
- // return Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
- // }
- }
- package teste.com.br.teste;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- /**
- * Created by Tacila on 05/07/2017.
- */
- public class BitmaptArrastavel {
- public int x, y, altura, largura;
- private Bitmap bitmap;
- public BitmaptArrastavel(Bitmap b, int x) {
- bitmap = b;
- this.x = x;
- init();
- }
- public void init() {
- largura = 200;
- altura = 350;
- }
- public Bitmap escalaBitmap(Bitmap bm) {
- return Bitmap.createScaledBitmap(bm, largura, altura, false);
- }
- public boolean isDentro(float x, float y) {
- return (x >= this.x && x <= this.x + largura && y >= this.y && y <= this.y + altura);
- }
- public void drawOnCanvas(Canvas canvas) {
- canvas.drawBitmap(bitmap, x, y, null);
- }
- public void mover(int x, int y) {
- this.x = x;
- this.y = y;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement