'stack overflow/Android'에 해당되는 글 4건

  1. 2013.03.24 [안드로이드]OpenGL ES ①
  2. 2013.03.20 [안드로이드]타이틀 바 없애기
  3. 2013.01.28 [안드로이드]Starting an Activity
  4. 2013.01.28 [안드로이드]액티비티란?

[안드로이드]OpenGL ES ①

stack overflow/Android 2013. 3. 24. 22:41 posted by Allen Park

뷰 컨테이너 생성

더 좋은 방법은 GLSurfaceView and a GLSurfaceView.Renderer 두 개를 구현

GLSurfaceView는 OpenGL로 그려진 그래픽의 뷰 컨테이너

GLSurfaceView.Renderer는 그 뷰 안에 그려진 것들을 제어

GLSurfaceView는 전체 화면

TextureView는 일부 화면

menifest에 선언 : <uses-feature android:glEsVersion="0x00020000" android:required="true" />

일반 어플과 다르게 GLSurfaceView 추가 (Android 2.2 (API Level 8) or higher)

이벤트 처리를 위해

 

1. menifest에 선언

 

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

 

 

2. class 추가

 

class MyGLSurfaceView extends GLSurfaceView {

    public MyGLSurfaceView(Context context) {
        super(context);

 

        // OpenGL ES 2.0 버전 사용
        setEGLContextClientVersion(2);

 

        // 렌더러를 GLSurfaceView에 세트
        setRenderer(new MyGLRenderer());

 

        // 그리는 값에 변화가 있을 경우에만 렌더링 함
        setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
    }
}

 

 

3. 렌더러 클래스 생성 (따로 분리된 java 파일로 생성)

 

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView;
import android.opengl.GLES20;

 

public class MyGLRenderer implements GLSurfaceView.Renderer {

    public void onSurfaceCreated(GL10 unused, EGLConfig config) {


        // 배경색 설정
        GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
    }

    public void onDrawFrame(GL10 unused) {


        // 배경 다시 그림
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    }

    public void onSurfaceChanged(GL10 unused, int width, int height) {
        GLES20.glViewport(0, 0, width, height);
    }
}

 

'stack overflow > Android' 카테고리의 다른 글

[안드로이드]타이틀 바 없애기  (0) 2013.03.20
[안드로이드]Starting an Activity  (0) 2013.01.28
[안드로이드]액티비티란?  (0) 2013.01.28

[안드로이드]타이틀 바 없애기

stack overflow/Android 2013. 3. 20. 22:54 posted by Allen Park

 

1. AndroidMenifest.xml 에서 없애는 방법

 

-제목 표시줄 없애기
<activity android:name=".AAA" android:theme="@android:style/Theme.NoTitleBar" />

-다 없애기
<activity android:name=".AAA" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

 

 

 

2. Java 소스에서 설정 하는 방법

 

-제목 표시줄 없애기

requestWindowFeature(Window.FEATURE_NO_TITLE);

-상태 바만 없애기

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

 

'stack overflow > Android' 카테고리의 다른 글

[안드로이드]OpenGL ES ①  (0) 2013.03.24
[안드로이드]Starting an Activity  (0) 2013.01.28
[안드로이드]액티비티란?  (0) 2013.01.28

[안드로이드]Starting an Activity

stack overflow/Android 2013. 1. 28. 18:11 posted by Allen Park

안드로이드 트레이닝 페이지 대충 번역

http://developer.android.com/training/basics/activity-lifecycle/starting.html




Starting an Activity


 기존 프로그램들이 main() 함수에 의해 시작되는 일반적인 배경과는 달리 안드로이드는 각 상황에 맞는 특정한 콜백 메소드를 불러들여 액티비티 객체 안의 코드를 수행한다. 다시 말해서 시작부터 종료까지 모든 단계에 따른 각각의 메소드의 시퀸스화 이다. 이 글에서는 그 중 가장 중요한 라이프사이클 메소드와 가장 처음 새로운 액티비티 객체를 생성하는 메소드의 사용법을 소개한다.




Understand the Lifecycle Callbacks


 액티비티의 일생에서 시스템은 다음 그림처럼 피라미드와 같은 일련의 과정을 이루는 라이프사이클 메소드들을 불러온다. 이 피라미드 그림을 따라 동작하며 피라미드의 가장 위야 말로 유저와 본격적인 인터렉트를 할 수 있는 상태라고 할 수 있다. 이 때 유저가 뒤로 가기 등을 눌러 해당 액티비티를 떠나면 액티비티의 상태는 피라미드의 한 계단을 내려오게 된다. 때에 따라서 액티비티가 소멸되지 않고 가려진 상태로 대기를 하는 경우도 있다. 예를 들어 화면 전환과 같은 경우를 말한다. 그림을 보면 쉽게 이해할 수 있다.





그림에 있는 콜백 함수들을 언제나 모두 쓰는 것은 아니지만 각각을 이해하고 구현해두는 것은 어플이 유저의 기대대로 잘 작동하도록 하는 좋은 방법이다. 콜백함수들의 내용들을 잘 구현해두면 다음 이점들을 얻을 수 있다.

  • 유저가 전화를 받거나 다른 어플로 전환하는 등의 경우 어플이 튕기지 않는다.

  • 액티비티가 활성화되지 않은 경우 리소스를 불필요하게 점유하지 않는다.

  • 유저가 액티비티를 떠났다가 돌아와도 그 전까지의 진행상황을 잃어버리지 않는다.

  • 화면이 가로모드나 세로모드로 전환되어도 진행을 잃거나 튕기지 않는다.


포커스를 얻거나 일는 등의 전환 상태가 발생되더라도 다음 세 가지의 상태만은 static(시스템에 잔류) 하다.


Resumed

액티비티가 앞화면에 있어 포커스를 얻고 유저와 인터렉트 한다. (이를 running 상태라고도 한다.)


Paused

부분적으로 가려진 상태를 말하며 작은 창 등에 의해 포커스를 뺏긴 경우이다. 이 때, 유저에 의한 입력을 받을 수 도 없고 어떠한 코드도 수행할 수 없다.


Stopped

액티비티가 완전히 포커스를 잃어 화면에 표시되지 않고 백그라운드에 들어간다. 이 상태에 들어가면 액티비티 객체와 그 멤버변수 값들은 보존되지만 코드를 수행할 수는 없게 된다.


이 외의 Created나 Started 상태는 "일시적" 이다. 예를 들어 onCreate() 함수가 불려오고 나면 onStart() 함수가 재빨리 불려진다.



'stack overflow > Android' 카테고리의 다른 글

[안드로이드]OpenGL ES ①  (0) 2013.03.24
[안드로이드]타이틀 바 없애기  (0) 2013.03.20
[안드로이드]액티비티란?  (0) 2013.01.28

[안드로이드]액티비티란?

stack overflow/Android 2013. 1. 28. 17:33 posted by Allen Park

Activities


 액티비티란 어플리케이션을 이루는 페이지들이라고 보면 되겠다. 보통 화면을 가득 메우지만 중간에 창으로 떠 있을수도 있다. 하나의 어플은 여러개의 액티비티로 이루어져 있고 그중 하나는 어플을 맨 처음 시작할때 띄우는 "main" 액티비티이다. 액티비티들은 기능을 구현하기 위해 서로를 불러올 수 있다. 다른 액티비티를 불러올 경우 화면에서 사라진 액티비티는 스택(back stack)에 쌓여 보존된다. 즉 새로운 액티비티가 시작되면 back stack에 push 되는 것이다. 그리고 나서 포커스를 얻는다. back stack은 기본적인 LIFO 방식에 의해 관리된다. 즉 액티비티의 생성은 push요, 소멸은 pop이다. 만약 새로운 액티비티가 생성되어 기존 액티비티가 비활성화되면 이는 비활성화 되어있는 동안 콜백 메소드에 의해 상태정보를 받게 된다. 콜백 함수들은 상태변화에 따른 적절한 작동을 할 수 있도록 하는 수단이 된다.

'stack overflow > Android' 카테고리의 다른 글

[안드로이드]OpenGL ES ①  (0) 2013.03.24
[안드로이드]타이틀 바 없애기  (0) 2013.03.20
[안드로이드]Starting an Activity  (0) 2013.01.28