본문 바로가기
반응형

안드로이드68

안드로이드 xml레이아웃 include ●안드로이드 레이아웃 xml include해서 사용하기 - xml레이아웃에 추가하고 싶은 레이아웃xml을 include해준다. - mybutton.xml 2015. 3. 17.
안드로이드 리스트뷰1 (ListView) ●리스트뷰(ListView) - 여러개의 목록을 보여주는 위젯이다. - 리스트뷰에 보여줄 데이터는 리스트뷰에 직접 입력하는 것이 아니라, adapter 객체에 담고, 그 adapter객체를 리스트뷰에 넣어줘야한다. - adapter객체에 담을 데이터는 xml에서 불러올수도 있고 자바에서 넣어줄수도 있다. - ListView처럼 다량의 데이터를 처리하는 위젯은 어댑터라는 중간 객체에 의존하게 된다. 이유는 디자인에 불과한 ListView가 직접 데이터를 제어하게 되면, 유지보수성이 떨어지게 되기 때문이다. - 안드로이드에서는 ListView처럼 다수의 데이터를 처리하는 위젯이 여러개 있다. 아래 4개 위젯 모두 데이터를 직접 제어하지 않고 어댑터 객체를 이용한다. 그래서 어댑터뷰라고 부른다.(ListVie.. 2015. 3. 17.
안드로이드 스피너(spinner) ●스피너(spinner)- html의 select와 비슷한 것이다. 여러개 중 하나를 선택 할수 있게 해준다. - ListView와 마찬가지로 adapter 객체를 이용하여 보여준다. ●스피너 예제1 - ex1.xml - ex1.javapackage com.example.day0314; import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.Spinner; public class Ex1 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated .. 2015. 3. 17.
안드로이드 인텐트(intent) ●인텐트(Intent)- 하나의 앱을 구성하는 여러 액티비티간 데이터를 주고 받고 대상에게 무엇을 하려는지에 대한 '의도'를 전달할 목적으로 사용되는 객체이다. - 인텐트 사용시 대상 액티비티를 정확히 명시하여 사용할 수 있는 인텐트를 명시적(explicit)인텐트라고 하고 대상을 정확히 명시하지 않고 사용하는 액티비티를 암시적(implicit)라고 한다. - 명시적 인텐트는 앱내에서 내가 만든 액티비티를 호출할때 이용하고, 암시적 인텐트는 다른 앱을 호출할때 Action상수를 이용해서 호출한다. ●명시적 액티비티 예제 - A액티비티에서 B액티비티로 화면 이동하고 텍스트를 전달하는 예제 - a.xml - ActivityA.javapackage study; import com.example.day0307... 2015. 3. 10.
안드로이드 버튼 클릭, 이미지 변경 ●버튼클릭하면 숫자가 하나씩 증가하는 예제 - ex1.xml -MainActirity.javapackage com.example.day0307;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{int cnt=1;@Overri.. 2015. 3. 10.
안드로이드 버튼 클릭, 화면 이동 ●버튼을 클릭하면 메세지가 나오는 예제 - MainActivity.javapackage com.example.project import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast; //사용자가 위젯에 이벤트를 발생시킬때, 이러한 이벤트를 click이벤트라 하고, 이 이벤트가 발생했을때 어떤 내용의//구현을 할지는 개발자의 몫이기 때문에, 내용이 불완전한 인터페이스 객체가 전달된다!public class MainActivity extends Activ.. 2015. 3. 6.
안드로이드 에러 View requires API level 14 (current min is 10): <GridLayout> ●'View requires API level 14 (current min is 10): ' 에러- 레이아웃xml에 GridLayout을 추가할 때 나타난 오류이다.GridLayout은 최소 api14이상부터 지원이 되는데 현재 프로젝트는 min10으로 되어있어서 오류가 난다. AndroidManifest.xml에서 android:minSdkVersion 부분를 14이상으로 수정해주면 에러가 없어진다. 2015. 3. 5.
안드로이드 레이아웃 만들기2 ●그룹위젯인지 일반위젯인지 판단하는 방법 1. 위젯이 그룹인지 아닌지는 안드로이드 사이트의 api보고 판단한다. 안드로이드 개발자 사이트에 들어가서 위젯을 검색한다. ( http://developer.android.com/index.html ) 2. Reference는 api문서이고 Guides는 사용하는 방법에 관한 페이지이다. Api를 확인하려면 Reference부분을 클릭한다. 3. 아래처럼 ViewGropu가 있으면 다른 위젯을 포함할수 있는 그룹위젯이고 ViewGroup가 없으면 일반 위젯이다. ●레이아웃의 종류- Layout은 배치방법에 따라 LinearLayout, FrameLayout, GridLayout, RelativeLayout , TableLayout 등이 있다.LinearLayou.. 2015. 3. 5.
안드로이드 스마트폰으로 테스트하면서 개발하기 ●pc에뮬레이터로 테스트하면 느리기 때문에 스마트폰과 pc를 연결 시킨후 스마트폰으로 테스트하는게 좋다. 1. 삼성 갤럭시의 경우 환경설정->개발자 옵션->USB디버깅에 체크를 해준다. 2. 삼성 갤럭시의 경우 삼성홈페이지에서 usb 드라이버를 다운받아 설치한다.( http://local.sec.samsung.com/comLocal/support/down/kies_main.do?kind=usb ) 3. 이클립스에서 상단 Run Configuration을 클릭한다. 4.왼쪽 Android Application 우클릭 후 new를 선택한다. 5.Browse..에서 프로젝트를 선택한다. 그리고나서 Name을 본인이 원하는 이름으로 변경한다. 6.Target 탭에서 첫번째 Always prompt to pick.. 2015. 3. 3.
안드로이드 레이아웃 만들기1 ●안드로이드 레이아웃을 만들땐 3가지 방법이 있다.1. 드래그 앤 드로그(잘 사용 안함)2. xml 코드 편집(제일 많이 사용)3. 순수 자바 코드로 작성- 디자인 외 작업에 주로 사용되며, 어떤 경우에 위젯을 커스터마이징 할 때 위력을 발휘한다. 단, 무조건 좋은게 아니라 디자인을 구현할때는 오히려 효율성 떨어진다. ● xml 파일 추가하기 - res->layout폴더에 Android XML Layout File 을 추가한다. ●위젯 - 위젯은 남을 포함할수 있는 위젯(그룹위젯), 포함 당하는 위젯 2가지가 있다.다른 위젯을 포함(ViewGroup)하는 위젯은 단순포함인지 배치와 관련(레이아웃)되는 위젯인지로 나뉜다. 레이아웃을 만들때 LinearLayout을 가장 많이 사용한다. ●위젯을 만들면 반드.. 2015. 2. 22.
안드로이드 개발환경 세팅 ●안드로이드 개발환경 세팅1. java SDK 또는 JRE(Java Runtime Enviroment) - 개발툴을 실행하기 위한 Java VM2. Android SDK - 개발에 필요한 안드로이드 라이브러리3. 이클립스(Eclipse) - 개발툴4. Developer Tools(ADT, Eclipse Plugin) - 개발에 필요한 이클립스 플러그인 형태의 개발도구5. 이클립스 설정 1. java SDK 또는 JRE(Java Runtime Enviroment)- 자바를 사용해서 개발하려면 반드시 java SDK가 설치되어 있어야 한다. ①아래 주소에서 Java SE Development를 다운받아 설치한다http://www.oracle.com/technetwork/java/javase/downloads.. 2015. 2. 17.
cocos2d-x 간단한 액션 게임 예제1 ●터치하면 캐릭터가 점프하고 장애물을 피하는 게임이다. 장애물에 충돌하면 패배화면으로 넘어간다. 코인에 충돌하면 스코어가 오른다. ●구조 ●파일, 리소스 목록 ●파일 목록 - AppDelegate - LoadingLayer - 로딩 화면 - MainMenuLayer - 메인 메뉴 화면 - StageSelect - 스테이지 선택 화면 - Stage1Layer - 스테이지1 - Stage2Layer - 스테이지2 - StageIdx - 스테이지1을 깨야 스테이지2가 선택되도록 처리하기 위한 싱글톤 클래스를 구현 - WinLayer - 승리화면 - LoseLayer - 패배화면 ●동영상 2013. 6. 8.
cocos2d-x 액션2 ●CCSequence- 액션의 순서를 정하고 순차적으로 실행한다. void HelloWorld::doAction(CCObject* pSender){//액션 정의CCActionInterval* action1=CCMoveTo::create(2,ccp(100,200));CCActionInterval* action2=CCRotateBy::create(2,90);CCActionInterval* action3=CCScaleTo::create(2, 2.0); CCFiniteTimeAction* seq=CCSequence::create(action1, action2, action3, NULL); pMan->runAction(seq);} ●CCSpawn- 등록된 모든 액션을 동시에 시행한다. void HelloWorld.. 2013. 5. 28.
cocos2d-x 액션1 ●액션- 많은 액션은 By와 To로 나뉘는데 By는 지정한 값만큼 변하는 것이고, To는 지정한 값으로 변하는 것이다.- 위치관련 - CCMoveBy, CCMoveTo, CCJumpBy, CCJumpTo, CCBezierBy, CCBezierTo, CCPlace- 크기관련 - CCScaleBy, CCScaleTo- 회전관련 - CCRotateBy, CCRotateTo- 가시성 - CCShow, CCHide, CCBlink, CCToggleVisibility- 투명도 - CCFadeIn, CCFadeOut, CCFadeTo- 색관련 - CCTintBy, CCTintTo ●액션 기본 예제 - HelloWorldScene.cpp의 doAction함수안에 여러가지 액션 함수를 넣어 액션 예제를 확인한다. - H.. 2013. 5. 28.
cocos2d-x 스프라이트(sprite) ●스프라이트 출력하기- HelloWorldScene.cpp의 init에 다음과 같이 입력해준다. //스프라이트 생성 및 초기화 CCSprite* man=CCSprite::create("images/이미지 이름.png"); //스프라이트 위치 지정 man->setPosition( ccp(240,160)); //레이어에 스프라이트 객체 추가 this->addChild(man); ●이미지가 중첩될 경우 순서 정하기- addChild에 숫자를 넣어준다. 숫자가 큰게 위에 온다. this->addChild(man,숫자) ●두 이미지를 한번에 묶기- 하나의 스프라이트에 다른 스프라이트를 포함 시킬수 있다.- 스프라이트를 합치게 되면 자식 스프라이트의 좌표 기준점은 부모스프라이트의 왼쪽 하단이 된다. #include.. 2013. 4. 25.
cocos2d-x CCLabelTTF ●화면에 글자 출력하기- HelloWorldScene.cpp의 init부분에 다음과 같이 입력한다 #include "HelloWorldScene.h" using namespace cocos2d; CCScene* HelloWorld::scene(){ CCScene *scene=CCScene::create(); HelloWorld *layer=HelloWorld::create(); scene->addChild(layer); // return the scene return scene;} // on "init" you need to initialize your instancebool HelloWorld::init(){if(!CCLayerColor::initWithColor(ccc4(255,255,255,255).. 2013. 4. 22.
cocos2d-x 프로젝트 기본형 ●프로젝트 생성하기 - 프로젝트를 생성한다. - 사용할 엔진을 선택한다. ●프로젝트 종속성 선택 - 프로젝트를 선택하고 우클릭->프로젝트 종속성을 선택한다. 창이 뜨면 필요한 라이브러리를 선택한다. libcocos2d는 기본적으로 선택한다. ●AppDelegate.cpp 를 선택해서 다음 부분을 수정한다.- pDirector->setDisplayStats(true); 부분을 pDirector->setDisplayStats(false); 로 바꾸어 주면 좌측하단에 fps가 표시되지 않는다. ●HelloWorldScene.h 를 선택해서 다음 부분을 수정한다.- CCLayer 를 CCLayerColor로 수정해준다. 기본적으로 상속받는 레이어의 배경은 검은색인데 다른색으로 변경하기 위해 수정한 것이다.- m.. 2013. 4. 15.
cocos2d-x 기본구조 ●CCNode- CCNode는 cocos2d-x의 최상위 클래스로 cocos2d-x의 모든 클래스는 이 클래스를 상속받는다.- CCNode는 자식노드를 가질수 있다. ●CCDirector- 싱글톤클래스로 하나의 어플리케이션에서 하나의 인스턴스만 존재한다.- 게임의 화면을 장면단위로 구성해서 처리할 수 있는 기능을 제공한다.- 여러 장면들을 뒤로 가게 하거나 앞으로 가도록 하는 클래스이다. ●CCScene, CCLayer- 일반적인 게임의 메인화면, 메뉴화면, 게임화면 등이다.- CCScene은 터치이벤트, accelerometer 입력을 처리할 수 없다.- CCLayer는 터치이벤트, accelerometer 입력을 처리할 수 있다. ●CCSprite- 이미지 파일을 화면에 출력하는 역할을 한다.- 이미.. 2013. 4. 15.
cocos2d-x 윈도우 개발 환경 세팅하기 ●이 블로그에서 cocos2d-x개발하는 환경은 Window7 32bit입니다. ●cocos2d-x - cocos2d-x는 c++을 사용한다. - cocos2d-x로 프로그래밍 할 경우 별도의 수정 없이 하나의 소스로 ios, 안드로이드용 앱을 만들수 있다. 다만 ios용은 최종 컴파일은 맥에서 해야한다. - cocos2d-x 자체가 개발 툴은 아니고 그래픽 프레임워크이기 때문에 개발툴에 설치되어야 한다. 윈도우에서는 Visual Studio, 이클립스 등, 맥에서는 Xcode에 설치해서 사용한다. ●cocos2d-x 개발 환경 세팅하기 - cocos2d-x 다운로드 - http://www.cocos2d-x.org 에서 cocos2d-x를 다운로드한다. - 압축을 풀고 적당한 위치에 압출을 푼 폴더를 둔.. 2013. 4. 15.
안드로이드 상단의 제목표시줄 없애고 전체화면(Full Screan)모드로 표시 ●상단의 제목표시줄을 없애고 전체 화면(Full Screen)모드로 표시하기 - 매인 액티비티의 setContentView() 메서드 위에 설정한다. - 프로그램 제목 표시줄 없애기 requestWindowFeature(Window.FEATURE_NO_TITLE); - 상태표시줄 없애기 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 2013. 1. 1.
안드로이드 계산기 소스1 ●레이아웃 2012. 10. 29.
유니티(unity) 3D 단축키 정리 ●디자인 탭에서의 마우스 버튼 - 왼쪽 버튼 - 게임 오브젝트 선택 - 오른쪽 버튼 - 화면 회원 - 마우스 휠 - 화면 확대/축소 - 휠 드래그 - 화면 이동 - alt+왼쪽버튼 - 화면 회전 - alt+오른쪽버튼 - 줌인/줌아웃 ●File 메뉴 - Ctrl+N - 새 Scene 만들기 - Ctrl+O - Scene 열기 - Ctrl+S - Scene 저장 - Ctrl+Shift+S - 새 이름으로 Scene 저장 - Ctrl+Shift+B - Build 설정 - Ctrl+B - Build+Run - Alt+F4 - 유니티 종료 ●Edit 메뉴 - Ctrl+C/X/Y - 복사/잘라내기/붙여내기 - Ctrl+Z - 실행 취소 - Ctrl+Y - 되돌리기 - Ctrl+D - 오브젝트 복제 - Shift+D.. 2012. 8. 20.
안드로이드 옵션 메뉴 만들기 ●옵션메뉴는 메뉴버튼을 눌렀을 때 나타나는 메뉴이다. 안드로이드는 보통 버튼을 '홈버튼,이전버튼,메뉴버튼' 3가지 버튼을 가지고 있다. 화면 하단에 표시할수 잇는 옵션 메뉴 항목은 최대 6개가지이고 6개 초과한 항목은 목록형태로 나타난다. ●이클립스 상단의 Source항목에서 Override/Implement Methods를 선택하고 창이 나타나명 onCreateOptionsMenu와 onOptionsItemSelected()를 선택한다. 이렇게 안하고 그냥 직접 코딩해도 상관없다. ●onCreateOptionsMenu() - 메뉴 항목 추가 menu.add(그룹번호, 메뉴식별번호, 배치순서, 메뉴에 표시할 타이틀); - 아이콘 추가와 단축키 추가 - 선택사항이므로 해도되고 안해도 된다. menu.add.. 2012. 6. 23.
안드로이드 ArrayList ●ArrayList - ArrayList는 링크드 리스트(linked list)라는 자료구조를 이용한 리스트로서 고정된 크기를 갖은 배열과 달리 임의로 데이터의 추가,삭제,변경등이 자유로운 배열 Class이다. - 다음과 같은 형식을 가진다 ArrayList 변수명 = new ArrayList(); -ex) ArrayList a = new ArrayList(); a.add(new Aaa()); //Class를 새로 생성해서 추가 a.add(new Aaa(1,2)); //Class가 파라미터를 받은 경우 int n = a.size(); //ArrayList에 저장된 요소의 개수 a.get(index); //해당 인덱스 위치의 요소 찾기 a.remove(index); //해당 인덱스 위치의 요소 삭제 a.c.. 2012. 6. 23.
안드로이드 비트맵 그림 자르기(slice) ●그림 자르기 - Bitmap.createBitmap()는 사진에서 필요한 부분만 새로운 비트맵으로 만든다. - Bitmap.createBitmap( Bitmap source, int x, int y, int width, int height ) ●이미지 확대, 축소 - Btimap.createScaledBitmap(그림파일, 너비, 높이, true) - imgBack = BitmapFactory.decodeResource(context.getResources(), R.drawable.back); //이미지 불러오기 imgBack = Bitmap.createScaledBitmap(imgBack, width, height, true); //해당 이미지를 width,height만큼 늘려서 imgBack에 저장.. 2012. 6. 22.
안드로이드 뷰(View) 2 ●캐릭터 이미지 불러오기 - 캐릭터로 사용할 이미지는 배경을 투명하게 처리두어야 한다. 먼저 캐릭터 이미지를 res폴더 안에 임의의 폴더 drawable에 저장한다. 이때 리소스로 사용할 파일 이름은 영어 소문자로 써야하고 숫자, 언더바등을 사용하여 작성한다. - 이미지를 저장한 후 소스 코드에서 " Bitmap bitmap = BitmapFactory.decodeResource(리소스, 리소스 id); " 를 이용해서 비트맵을 읽어온다. - 리소스는 " Resources res; res=context.getResources(); "를 사용하여 구한다. - context가 매개변수로 넘오온 경우에는 다음과 같이 간단히 작성할 수 있다. Bitmap bitmap = BitmapFactory.decodeRe.. 2012. 6. 22.
안드로이드 뷰(View) 1 ●사용자 뷰(View) 만들기 - 먼저 멕티비티의 setContentView(R.layout.main)부분을 setContentView(new 뷰클래스이름(this)) 으로 바꿔주면 뷰클래스이름에 해당하는 사용자 뷰가 화면에 표시된다. 사용자뷰는 안드로이드의 layout을 거치지 않고 직접 View에 출력하도록 만든 Class이다. ● 1, MyView안의 전역변수 선언 2. 변수 초기화 영역 3. 실제로 View의 Canvas로 그림을 그리는 영역 - Canvas를 조작하거나 Timer, Handler 등을 이용해서 반복적으로 호출하는 것 등을 다루는 곳이다. ●단말기의 해상도 구하기 - 안드로이드os가 탑재되어 있는 단말기의 해상도가 기기마다 다르기 때문에 ui를 구성할때 단말기 해상도에 맞도록 조절.. 2012. 6. 21.
안드로이드 버튼의 리스너 작성 ●엑티비티(Activity) 영역 1. 전역변수 선언 영역 2. 프로그램 초기화 영역 - onCreate() 메서드는 프로그램이 켜질때 한 번 실행된다. 이 부분은 변수에 초기값을 지정해주고 버튼 등의 컨트롤에 리스너를 연결하는 용도로 쓰인다. 3. 프로그램에서 반복적으로 사용할 영역 - 실제로 작성할 프로그램의 본체이다. 각종 연산과정과 처리결과를 화면에 표시하는 소스코드 등을 여기에 작성한다. ●버튼 리스너 작성 기본 1. 리스너 할당 2. 리스너 본체 ●예제 - EditText에 어떤 값을 입력한후 '확인' Button을 누르면 그 값이 TextView에 표시되는 예제 2012. 6. 20.
모바일 웹 개념 ●모바일 어플리케이션의 종류 네이티브 앱(Native App) - 모바일 기기에 직접 설치되고 사용되어지는 어플리케이션이다. 모바일 웹(Mobile Web) - 모바일 웹브라우저에 의해 실행되는 웹 사이트로 일반적인 웹사이트를 모바일로 옮긴 형태를 말한다. 하이브리드 앱(Hybrid App) - 웹과 네이티브 앱의 중간 형태이다 모바일 웹앱(Mobile Web App) - 모바일 웹의 한 형태이지만 일반적인 웹보다 모바일에 더 최적화되고 네이티브 어플리케이션화된 형태를 표현한다. ●모바일 웹은 기존의 웹사이트를 바탕으로 레이아웃만 모바일 환경에 맞게 바꾸는 것이기 때문에 기존 일반 웹기술을 바탕으로 구현된다. 그래서 모바일 웹을 공부하기전 일단 기존 웹기술(jsp, sql, 웹서버 등)을 먼저 배워야 한.. 2012. 5. 6.
안드로이드 액티비티의 화면 구성하기-레이아웃(layout) ●안드로이드 어플리케이션의 화면을 구성하는 뷰는 위젯(Widget)과 레이아웃(Layout)으로 나뉜다. 위젯에는 텍스트를 표시하는 TextView, 그림을 표시하는 ImageView, Button, CheckBox, RadioButton, EditText 가 있다. 위젯은 사용자의 입력을 받거나 화면에 데이터를 표시한다. 레이아웃은 위젯들을 화면에 어떻게 배치할지 결정하는 컨테이너 역할을 한다. 레이아웃은 뷰를 상속받은 위젯을 포함할 수 있기 때문에 뷰그룹(ViewGroup)이라고도 한다. ●일반적으로 윈도우 응용 어플리케이션의 경우 레이아웃을 작성할 때는 구성요소를 마우스로 끌어 드로그앤 드롭으로 원하는 좌표에 놓는 방식으로 화면을 구성하는데, 안드로이드는 주로 상대적인 위치를 지정하여 레이아웃을 지.. 2012. 3. 1.
반응형