안드로이드 개발 질문/답변
(글 수 45,052)
package com.example.loaf.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.view.*;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.service.wallpaper.WallpaperService;
import android.view.SurfaceHolder;
public class MainActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 전체 화면 사용하기
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new GameView(this));
}
//-----------------------------------
// Game View
//-----------------------------------
class GameView extends View {
int width, height; // 화면의 폭과 높이
int x, y; // 캐릭터의 현재 좌표
int dx, dy; // 캐릭터가 이동할 방향과 거리
int cw, ch; // 캐릭터의 폭과 높이
int counter; // 루프 카운터
Bitmap character[] = new Bitmap[2]; // 캐릭터의 비트맵 이미지
//-----------------------------------
// Constructor - 게임 초기화
//-----------------------------------
public GameView(Context context) {
super(context);
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay();
width = display.getWidth(); // 화면의 가로폭
height = display.getHeight(); // 화면의 세로폭
x = 170; // 캐릭터의 현재 x위치
y = 150; // 캐릭터의 현재 y위치
dx = 4; // 캐릭터가 x축으로 이동할 거리
dy = 4; // 캐릭터가 y축으로 이동할 거리
// 캐릭터의 비트맵 읽기
character[0] = BitmapFactory.decodeResource(getResources(), R.drawable.abc);
character[1] = BitmapFactory.decodeResource(getResources(), R.drawable.abc);
cw = character[0].getWidth() /4; // 캐릭터의 폭/2
ch = character[0].getHeight() / 8; // 캐릭터의 높이/2
mHandler.sendEmptyMessageDelayed(0, 10);
}
//-----------------------------------
// 실제 그림을 그리는 부분
//-----------------------------------
public void onDraw(Canvas canvas) {
x += dx; // 가로 방향으로 이동
y += dy; // 세로 방향으로 이동
if (x < cw || x > width - cw*3) dx = -dx; // 좌우의 벽이면 방향을 바꿈
if (y < ch || y > height - ch*8) dy = -dy; // 천정이거나 바닥이면 방향을 바꿈
counter++;
int n = counter % 20 / 10;
canvas.drawBitmap(character[n], x - cw, y - ch, null);
} // onDraw 끝
//------------------------------------
// Timer Handler
//------------------------------------
Handler mHandler = new Handler() { // 타이머로 사용할 Handler
public void handleMessage(Message msg) {
invalidate(); // onDraw() 다시 실행
mHandler.sendEmptyMessageDelayed(0, 80); // 10/1000초마다 실행
}
}; // Handler
} // GameView 끝
} // 프로그램 끝*/
이미지 움직이는거 뒤에 배경화면을 고정으로 뒤에 넣고 싶은데 방법아시나요 .