본문으로 바로가기

안드로이드 AR 만들기 ( 연습단계)

category 카테고리 없음 2017. 11. 9. 13:12

안드로이드 AR 만들기 전에 연습을 가볍게 해보겠습니다.


package com.example.administrator.gameview;


import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.Display;

import android.view.MotionEvent;

import android.view.View;

import android.view.WindowManager;


public class MainActivity extends Activity {

    int x,y;    //이미지 좌표값

    int height = 800; //현재 디바이스 해상도

    int width = 480;  //현재 디바이스 해상도

    int ax = 5;        //유닛의 가속도

    int ay = 5;         //유닛의 가속도

    MyView m;


    class Myhandler extends Handler {

        @Override

        public void handleMessage(Message msg) {

            //콜백메소드

            //현재 메소드에 코드는 main thread에 의해서 실행

            x = x + ax;

            y = y + ay;

            m.invalidate();


            if ( x > width || x <0) {

                ax = -ax;

            }

            if ( y > height || y < 0) {

                ay = -ay;

            }


            sendEmptyMessageDelayed(500, 0);

        }

    }

    Myhandler myhandler = new Myhandler();


    class MyView extends View {

        Bitmap image;

        public MyView(Context context) {

            super(context);

            image = BitmapFactory.decodeResource(getResources(), R.drawable.abc);

            myhandler.sendEmptyMessage(0);

        }

        @Override

        protected void onDraw(Canvas canvas) {

            Paint p = new Paint();

            p.setColor(Color.BLUE);

            p.setTextSize(50);

            canvas.drawText("ABC", 100, 100, p);

            canvas.drawBitmap(image, x, y, null);

        }

    }


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        //화면을 풀스크린으로

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                WindowManager.LayoutParams.FLAG_FULLSCREEN);


        //현재 디바이스 해상도 구해오기

        WindowManager wm

                = (WindowManager)this.getSystemService(Context.WINDOW_SERVICE);

        Display display= wm.getDefaultDisplay();

        width = display.getWidth();

        height = display.getHeight();


        m = new MyView(this);

        setContentView(m);

    }


    @Override

    public boolean onTouchEvent(MotionEvent event) {

        x = (int)event.getX();

        y = (int)event.getY();

        m.invalidate();         //MyView 갱신(새로그리기)

        return super.onTouchEvent(event);

    }

}





이것은 View를 상속받아서 화면에 간단하게

유닛을 움직이게 만드는 코드입니다.

이것은 아직 AR을 만들기전에 연습단계 이므로 가볍게 코드를 이해정도만 해두세요!!