안드로이드 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을 만들기전에 연습단계 이므로 가볍게 코드를 이해정도만 해두세요!!