본문 바로가기
반응형

프로그래밍/안드로이드65

안드로이드 인플레이터(inflater) ●인플레이션(inflation)- 레이아웃xml에 명시한 위젯이 안드로이드 메모리에 셩성되는 과정은 인플레이션이라 한다. - setContentView를 이용하면 xml레이아웃을 인플레이션 한 후 화면에 보여주는 기능을 하기도 하고, 인플레이션 된 위젯을 화면에 구성하는 기능을 한다. ●예제- TestActivity.javapackage study.custom; import com.example.day0314.R; import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.widget.Button;import android.widget.LinearLayout; public clas.. 2015. 3. 18.
안드로이드 커스텀 버튼 만들기 ●자바로 Button 위젯 만들기 - CustomEx1.javapackage com.custom; import android.app.Activity;import android.app.ActionBar.LayoutParams;import android.os.Bundle;import android.widget.Button;import android.widget.LinearLayout; public class CustomEx1 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//리니어 레이아웃 선언LinearLayout layout = new LinearLa.. 2015. 3. 17.
안드로이드 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.
안드로이드 상단의 제목표시줄 없애고 전체화면(Full Screan)모드로 표시 ●상단의 제목표시줄을 없애고 전체 화면(Full Screen)모드로 표시하기 - 매인 액티비티의 setContentView() 메서드 위에 설정한다. - 프로그램 제목 표시줄 없애기 requestWindowFeature(Window.FEATURE_NO_TITLE); - 상태표시줄 없애기 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 2013. 1. 1.
안드로이드 에러 E/AndroidRuntime(351): java.lang.IllegalArgumentException: current should be >= start and <= end ●DatePickerDialog 처리할때 생긴 에러입니다. E/AndroidRuntime(351): java.lang.IllegalArgumentException: current should be >= start and 2012. 11. 3.
안드로이드 디데이(dday) 계산 소스2 ●DatecalActivity.java package your.pack; import java.util.Calendar; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.DatePicker; import android.widget.TextView; public class DatecalActivity extends Activity {.. 2012. 10. 31.
안드로이드 디데이(Dday) 계산 소스 ●레이아웃 2012. 10. 30.
안드로이드 계산기 소스2 ● package your.packaga; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class CalculActivity extends Activity implements OnClickListener{ /** Called when the activity is first created. */ double a, b, tmp; //a는 첫번째 숫자, b는 두번째 숫자, c는 중간 계산값 int flag1=0, f.. 2012. 10. 29.
안드로이드 계산기 소스1 ●레이아웃 2012. 10. 29.
안드로이드 옵션 메뉴 만들기 ●옵션메뉴는 메뉴버튼을 눌렀을 때 나타나는 메뉴이다. 안드로이드는 보통 버튼을 '홈버튼,이전버튼,메뉴버튼' 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.
안드로이드 액티비티의 화면 구성하기-레이아웃(layout) ●안드로이드 어플리케이션의 화면을 구성하는 뷰는 위젯(Widget)과 레이아웃(Layout)으로 나뉜다. 위젯에는 텍스트를 표시하는 TextView, 그림을 표시하는 ImageView, Button, CheckBox, RadioButton, EditText 가 있다. 위젯은 사용자의 입력을 받거나 화면에 데이터를 표시한다. 레이아웃은 위젯들을 화면에 어떻게 배치할지 결정하는 컨테이너 역할을 한다. 레이아웃은 뷰를 상속받은 위젯을 포함할 수 있기 때문에 뷰그룹(ViewGroup)이라고도 한다. ●일반적으로 윈도우 응용 어플리케이션의 경우 레이아웃을 작성할 때는 구성요소를 마우스로 끌어 드로그앤 드롭으로 원하는 좌표에 놓는 방식으로 화면을 구성하는데, 안드로이드는 주로 상대적인 위치를 지정하여 레이아웃을 지.. 2012. 3. 1.
안드로이드 인텐트(intent) 개념 정리 ●인텐트(intent) 개념 - 어플리케이션 구성요소를 호출하거나 메시지를 보낼 때 사용하고, 정보의 형태에 따라 명시적 인텐트(Explicit Intent)와 암시적 인텐트(Implicit Intent)로 나뉜다. ●인텐트가 포함할 수 있는 정보의 종류 ① 컴포넌트의 이름 - 호출할 액티비티, 서비스나 메시지를 보낼 브로드캐스트 리시버 등의 이름을 포함한다. 이때 인텐트를 받을 대상 컴포넌트의 이름을 직접 입력하면 명식적 인텐트이다. ② 액션(Action) - 인텐트를 통해 수행할 동작을 지정하거나 브로드캐스트 메시지일 경우 특정 상태를 의미한다. 안드로이드의 기본 액션 외에 사용자가 액션을 만들어 사용할 수도 있다. 인텐트는 하나의 액션만을 가진다. ex) 액션 대상 컴포넌트 의미 android.in.. 2012. 2. 26.
안드로이드 매니페스트(manifest) ●매니페스트(AndroidManaifest.xml) - 매니페스트는 어플리케이션의 각종 정보를 저장하고 있는 신분증같은 역할을 한다. ●메티페스트의 구성 ① 태그 - 어플리케이션에 대한 전반적인 정보들을 포함한다. xmlns:android는 항상 다음과 같은 네임스페이스를 지정해야한다. packpge는 어플리케이션의 패키지 이름을 지정한다. android:versionCode는 어플리케이션의 버전코드이다. android:versionName는 어플리케이션 버전이다. ex) ② 태그 - 어플리케이션의 이름, 아이콘등을 정의한다. android:icon은 어플리케이션의 아이콘을 지정한다. android:label은 어플리케이션의 이름을 지정한다. 태그는 아휘요소로 어플리케이션의 구성요소(액티비티, 서비스, .. 2012. 2. 25.
안드로이드 액티비티(Activity)  ●액티비티 - 액티비티는 어플리케이션의 한 화면을 뜻한다. 액티비티는 보통 하나의 소스코드만으로 구성되지 않고 액티비티의 화면을 구성하는 것은 레이아웃 파일에서, 액티비티의 동작을 처리하는 것은 소스코드에서 이루어 진다. ●액티비티의 상태(Activity State) ①활성(Active) - 액티비티가 현재 화면에 표시되고 있는 상태이며, 사용자와 상호작용이 가능하다. ②일시정지 - 액티비티가 화면에 표시되고 있지만 사용자와 상호작용은 하지 못하는 상태이다. ③정지 - 홈화면으로 나가거나 다른 액티비티에 의해 가려져서 화면상에서 아예 보이지 않게 된 상태이다 ●액티비티 생애주기(Activity Lifecycle) - 안드로이드에서는 액티비티의 효율적인 관리를 위해 액티비티의 상태 변화가 일어날 때마다.. 2012. 2. 23.
안드로이드 리소스(Resources) ●리소스 - 어플리케이션에 사용하는 소리, 이미지, 레이아웃, 문자열 등이다. 리소스는 소스코드와는 별도로 존재하며 각각을 수정해도 서로에게 영향을 미치지 않는다. 리소스의 종류에 따라 저장 위치가 다르다. ●소스코드에서 리소스 참조하기 - 프로젝트에 리소스를 추가하면 각 리소스의 id가 자동으로 생성된다. " R.리소스종류.리소스이름 " 를 사용하여 참조할 수 있다. -프로젝트 내의 리소스 외에도 시스템마다 통일성을 유지하기 위해 " android.R.리소스종류.리조스이름 "으로 안드로이드 시스템을 참조할 수 있다. ex) R.string.abcd //이름이 abcd인 문자열 R.layout.main //이름이 main인 레이아웃 R.id.text //id가 text인 리소스 android.R.id.t.. 2012. 2. 23.
반응형