안드로이드 전체화면(Full Screen) 사용하기
1. AndroidManifest.xml 에서 Full Screen 설정하기
타이틀바와 상태바를 모두 제거하고자 한다면... <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 상태바는 남겨두고 타이틀바만 제거하고자 한다면... <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar" >
2. 프로그램 코드상에서 동적으로 Full Screen 설정하기
MainActivity.java
package com.example.androidapp;
import android.app.Activity; import android.graphics.Rect; import android.os.Bundle; import android.util.Log; import android.view.MotionEvent; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //int width = getWindowManager().getDefaultDisplay().getWidth(); //int height = getWindowManager().getDefaultDisplay().getHeight(); setContentView(new Tank(this)); } }
Tank.java
package com.example.androidapp; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.util.AttributeSet; import android.view.View; import android.view.WindowManager; public class Tank extends View { Canvas cacheCanvas; Bitmap backBuffer; public Tank(Context context) { super(context); init(); } public Tank(Context context, AttributeSet attrs) { super(context, attrs); init(); } int width, height, sx, sy; Bitmap bitmapTank, invTank, tank; Matrix matrix, horInvMatrix; int delta = -5; private void init() {
setBackgroundColor(Color.WHITE); WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); width = wm.getDefaultDisplay().getWidth(); height = wm.getDefaultDisplay().getHeight(); cacheCanvas = new Canvas(); bitmapTank = BitmapFactory.decodeResource(getResources(), R.drawable.tank); backBuffer = Bitmap.createBitmap( bitmapTank.getWidth(), bitmapTank.getHeight(), Bitmap.Config.ARGB_8888); cacheCanvas.setBitmap(backBuffer); sx = width/2-(bitmapTank.getWidth()/2); sy = height/2-(bitmapTank.getHeight()/2); matrix = new Matrix(); horInvMatrix = new Matrix(); horInvMatrix.setScale(-1, 1); invTank = Bitmap.createBitmap(bitmapTank, 0, 0, bitmapTank.getWidth(), bitmapTank.getHeight(), horInvMatrix, false); tank = bitmapTank; new Thread(){ public void run() { while(true) { if(sx<=0) { tank = invTank; delta *= -1; }else if(sx >= width-backBuffer.getWidth()){ tank = bitmapTank; delta *= -1; } cacheCanvas.drawBitmap(tank, matrix, null); sx+=delta; postInvalidate(); try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } } }; }.start(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawBitmap(backBuffer, sx, sy, null); } }