본문 바로가기

프로그래밍/Android

(93)
JSON JSONObjectString jsonString = "json string"; JSON 데이터는 { } 로 묶인 오브젝트와, 오브젝트 하위에 "키":"값", "키":"값" , 와 같이,(콤마)로 키-밸류로 이루어진 옵션 값으로 구성된다. {"TopObject":{"KEY01":"VALUE01","KEY02":"VALUE02""SubObject":{"S_KEY01":"S_VALUE01","S_KEY02":"S_VALUE02"}}} 옵션값은 [ ] 를 사용해 배열로 구성될 수도 있다. 파싱JSONObject json = new JSONObject( jsonString ); * 값 얻기String value = json.getString("KEY01"); * 오브젝트별 파싱해 값 얻기JSONObject to..
HTTP POST/GET 몇가지 정리 연결정보String url="https://my.site.com/test" 클라이언트 생성HttpClient client = new DefaultHttpClient();// 아래 파라미터를 미리 설정 후 파라미터를 기반으로 생성해도 된다. 파라미터설정 : CoreProtocolPNamesPROTOCOL_VERSION : 프로토콜 버전USER_AGENT : User-Agent 헤더.. HttpParams params = client.getParams(); // 프로토콜 정의params.setParameter( CoreProtocolPName.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); // client 생성하지 않은경우 생성// HttpClient client = new Def..
OpenGL es 조명 > 조명 종류주변광(ambient) : 특정한 방향성이 없는 빛, 오브젝트의 모든 면에 영향을 미치고 밝기도 동일분산광(diffuse) : 특정 방향에서 들어와 여러 방향으로 반사되는 빛. 빛을 직접 받는 부분일수록 밝아진다.반사광(specular) : 특정 방향에서 들어와 특정 방향으로 반사되는 빛. > 노말벡터방향성이 있고, 특정방향으로 반사되는 조명의 경우기존 모델에 노말벡터를 위한 버퍼가 추가로 필요하다.노말 벡터는 길이가 1인 단위벡터로 빛의 정도와 반사를 계산하기 위해 필요한 정보.버텍스와 같이 glVertex / glNormal 로 쌍으로 구성하거나 , array의 포인터를 전달하면 된다. > 라이팅 활성화glEnable( GL10.GL_LIGHTING ); > 사용할 라이트 번호(0~7) ..
API demos openGL es 2.0 ApiDemos GLES20Activity.java / GLES20TriangleRenderer.javaglVertexAtribPointer() , glDrawElemnts() 등 몇가지 메쏘드는 안드로이드버전 2.3 이상.. >> 2.0 호환여부 검사ActivityManager am = (ActivityManager) getSystemService( Context.ACTIVITY_SERVICE );ConfigurationInfo info = am.getDeviceConfigurationInfo();if (info.reqGlEsVersion >= 0x20000 ) {// 지원함} 2.0 은 기존 그래픽 파이프라이의 버텍스, 프레그먼트 프로세스가 쉐이더로 변경되었다.렌더러에서 GL10 인터페이스는 무시되며..
GLSurfaceView 배경 투명하게 GLSurfaceView 배경 투명하게 만들기 관련소스 : APIDemos/src/com.example.android.apis.graphics/TranslucentGLSurfaceViewActivity.java GLSurfaceView는 기본 값이 알파채널이 적용되지 않아서,glClearColor( 0,0,0,0 ); 으로 해도 투명값이 설정되지 않는다. EGL을 통해 SurfaceView를 핸들링하므로, 뷰 생성후 EGL, SurfaceView관련 설정만 하면 알파값을 사용할 수 있다. GLSurfaceView myView = new GLSurfaceView(this); // 픽셀포맷을 32비트포맷(8,8,8,8)으로 변경한다.myView.setEGLConfigChooser( 8, 8, 8, 8, 16..
최상위 뷰 만들기 Toast와 같이 최상위에 뷰 띄우기. Toast도 일반적인 뷰처럼 구성하고, 윈도우에 add 하는 구조로 작성되어 있다.간단히 Toast와 같이 최상위에 뷰를 띄우는 요소들에 대해 정리. 1. 레이아웃 구성Toast는 makeText라는 static 메쏘드를 제공하는데, 간단히 토스트를 띄울 수 있도록한 메쏘드다.요녀석을 살펴보면, 흔히 사용되는 루틴으로 이루어져 있다...LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflate.inflate( com.android.internal.R.layout.transient_notification, null);..
OpenGL 프레임버퍼 사용 API DEMOS에 프레임버퍼를 사용해 텍스처에 그림을 그리는(Render to texture) 예제가 포함되어 있다. 프레임버퍼는 openGL 2.0 부터 지원하는데, 예제에서는 extension pack 을 통해 1.1에서프레임버퍼를 사용하는 예제를 다루고 있다. >> onSurfaceCreated 1. 프레임버퍼 지원 여부 검사String extensions=" " + gl.glGetString(GL10.GL_EXTENSIONS) + " ";if( extensions.indexOf(" GL_OES_framebuffer_object " ) >= 0)return true; 2. 텍스처 생성int tex_id;int[] textures = new int[1];gl.glGenTexture(1, textur..
ADB tcp/usb 연결설정 일시적 TCP 모드 사용 : 특정 단말은 재부팅해도 유지되는 듯..> USB 연결> adb tcpip 포트번호> adb connect 단말ip:포트번호 USB모드로 변경> adb usb 단말 프로퍼티에 등록 : 항상 tcp 연결되도록 설정할때> adb shell$ setprop service.adb.tcp.port 포트번호$ stop adbd$ start adbd$ exit> adb connect ip:port 프로퍼티 등록 해제 : 포트번호를 -1로 설정> adb shell $ setprop service.adb.tcp.port -1