본문 바로가기
반응형

분류 전체보기374

안드로이드 핸들러(Handler) ●핸들러(Handler) - 안드로이드는 자바표준의 쓰레드를 그대로 사용한다. 단, 주의할건 쓰레드의 대상이 UI제어일 경우 직접 제어할 수 없고 반드시 Handler나, AsyncTask를 이용해야 한다. - 안드로이드에서는 메인쓰레드만 UI를 제어할 수 있고, 이벤트를 제어할 수 있다. 따라서 개발자가 정의한 쓰레드를 이용한 UI 제어를 허용하지 않는다. 그래서 개발자 정의 쓰레드는 핸들러를 이용하여 간접적인 요청을 시도하여 그래픽을 처리할 수 있다. ●예제 - CountActivity.javapackage study.thread; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.v.. 2015. 3. 30.
안드로이드 쓰레드 (Thread) ●쓰레드(Thread)- OS가 여러 프로세스를 동시에 처리하듯, 자바의 JVM도 세부 실행부를 생성하여 독립적으로 실행할 수 있는데, 이러한 독립적 세부 실행단위를 '쓰레드'라고 부른다. - 특정 클래스를 쓰레드 클래스로 정의할 경우, 메인 실행부와는 별도로 독립적인 수행단위가 될 수 있다. - 개발자가 독립적으로 수행할 코드를 run메서드에 작성해야 한다. - run메서드는 개발자가 직접 호출해서는 안된다. 실행여부는 시스템인 JVM이 결정해야 한다. 만일 개발자가 run메서드를 호출하면 메인쓰레드가 실행되므로 그냥 일반 메서드 취급된다. 그래서 start()로 호출해야한다. - 쓰레드는 run메서드가 끝날때 죽는다. 만약 run()안에 무한루프를 넣으면 run()메서드가 끝나지 않아서 쓰레드가 죽지.. 2015. 3. 26.
안드로이드 애니매이션1 (Animation) ●애니매이션(Animation) - 안드로이드 자체적으로 간단한 에니메이션 효과가 지원된다. - 안드로이드에서는 트윈 에니메이션을 지원한다. 일반적인 프레임에니메이션과는 차이가 있다. * 프레임 에니메이션 - 여러장의 이미지를 짧은 시간에 보여줘서 움직이는 것처럼 보여줌 * 트윈 에니메이션- 시작부터 마지막 사이의 에니메이션 효과를 내부적으로 예측 연산하여 보여줌 - 안드로이드에서 제공하는 시스템 애니매이션은 호출만 하면 된다. 대신 종류가 적다. 그래서 개발자가 직접 애니매이션을 제작해야 할 경우 쓰레드(Thread)를 이용해서 제작한다. - res/anim 안에 애니매이션 효과에 관한 xml파일을 만든 후 이 xml을 위젯에 적용한다. ●트윈 에니메이션 예제 - AniActivity.javapacka.. 2015. 3. 25.
안드로이드 캔버스(Canvas) ●캔버스(Canvas) - 화면에 어떤것을 그릴때 사용한다. - 뷰의 onDraw()메서드 재정의가 필요하다. - 안드로이드에서 제공하는 대부분의 안드로이드 위젯은 안드로이드에서 필요한 것이므로 개발자가 그래픽 처리를 함부로 하지 않는게 좋다. ●예제 - DrawTest.javapackage study.graphic; import com.example.day0321.R; import android.app.Activity;import android.os.Bundle;import android.widget.Button; public class DrawTest extends Activity{protected void onCreate(Bundle savedInstanceState) {super.onCreate(.. 2015. 3. 25.
안드로이드 리스트뷰2 (ListView), Adapter 재정의 ●Adapter 재정의- Adapter의 자식 개체중 ArrayAdapter는 단순한 텍스트만 보여주고자 할때 사용한다. 개발자가 정의한 복잡한 아이템 위젯은 지금가지 존재하지 않았던 새로운 위젯과 마찬가지이므로, ArrayAdapter가 보여줄 수 없다. 그래서 개발자가 직접 Adapter클래스를 상속받아 재정의해서 사용해야한다. ●예제 - FruitActivity.javapackage com.example.day0321; import java.util.ArrayList; import android.app.Activity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView; public cla.. 2015. 3. 25.
안드로이드 인플레이터(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.
오라클 개행문자 제거해서 select 하기 ●select replace(replace(컬럼명,chr(10),' '),chr(13),' ') from 테이블명 2015. 2. 9.
윈도우 배치파일 만들기(폴더 생성, 이동, 파일명 변경) ●배치 파일- '일괄작업파일'로 운영체제에서 수행되는 명령어들로 구성된 텍스트이다. 텍스트 파일을 만든후 확장자를 .bat를 쓰면 배치파일이 된다. ●폴더 만들기- mkdir 폴더경로 또는 폴더명 ex) @echo off mkdir a\a1 mkdir b\b1 ●폴더 또는 파일명 변경- ren 변경할대상 바꿀이름 ex) @echo off ren a 111 ren b 222 ●파일 또는 폴더 이동- move 이동할대상 이동시킬위치 ex) @echo off move 111 222/b1 ● 실행 중 멈추기- pause ex) @echo offecho a echo b mkdir a\ori pause echo c ● 한글이 깨져 나올때- 파일 인코딩을 ANSI로 바꿔준다. 2015. 1. 6.
java 오늘이 무슨 요일인지 구하기 ●자바로 오늘이 무슨 요일인지 구하기 String[] weekDay = { "일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일" }; Calendar cal = Calendar.getInstance(); int num = cal.get(Calendar.DAY_OF_WEEK)-1; String today = weekDay[num]; System.out.println(num); System.out.println("오늘의 요일 : " + today ); 2015. 1. 6.
이클립스 단축키(계속 작성중) ● 컨트롤 + 시프트 + f - 자동 줄 정렬 ● 컨트롤 + 스페이스- 코드 어시스트 호출 ● 컨트롤 + D- 커서가 위치한 줄 삭제 ● 컨트롤 + /- 선택된 줄 또는 선택된 블록 주석처리/해체 ● 컨트롤 + L- 입력한 줄로 이동 ● 컨트롤 + 시프트 + X- 대문자로 변환 ● 컨트롤 + 시프트 + Y- 소문자로 변환 2015. 1. 6.
웹프로그래밍 테스트 할때 익스플로어 설정 ●웹프로그래밍 테스트 할때는 크롬보다는 익스플로어에서 먼저 하는게 좋다. ●도구->옵션->고급에서 'HTTP오류메시지표시' 체크해제하고 '모든 스크립트 오류에 관련된 알림 표시' 체크 한다. ●js, css 수정 후 바로 적용 안되면 아래 경로에서 파일보기에서 파일 삭제한다. 인터넷옵션->일반->검색지록->설정->임시 인터넷파일->파일보기 2015. 1. 6.
리눅스 웹루트 상위에 있는 이미지 파일 불러오기 ●브라우저로 리눅스에 설치된 웹서버에 url로 이미지 등을 불러올 경우 기본적으로 웹루트 아래에 있는 이미지만 불러오는게 가능하다. ex) www라는 웹루트 아래에 있는 Penguins.jpg를 호출 하지만, 여러가지 이유로 웹루트 상위폴더에 디렉토리를 만들고 해당 디렉토리에 저장되어 있는 파일이나 이미지 등을 불러와야할때가 있다.이때는 리눅스의 '링크'를 사용하여 해당 디렉토리에 해당하는 링크를 웹루트 아래에 만들어준다. 리눅스의 링크는 쉽게생각하면 윈도우의 바로가기와 비슷하다. ln -s 링크걸디렉토리 링크를만들경로 ex) ln -s /home/project/files /home/project/www/files 웹루트 상위에 files라는 임의의 디렉토리를 만들어준다. 리눅스에서 링크 명령어를 실행시.. 2014. 12. 1.
html 익스플로러 버전에 따라 다르게 출력<!--[if 기호 IE버전 ]> <![endif]--> ● ●초과,미만,이상,이하 > : greater than (gt) = : greater than or equals (gte) ●ie9이상에서만 표시 ●ie9초과에서만 표시 ●ie9이하에서만 표시 ●ie9미만에서만 표시 2014. 12. 1.
이클립스 글자 크게하기, 테마 적용하기 ●글자 크게하기 - 상단 window->preferences 클릭한다. - general->apperance->colors and fonts->basic->text font->edit를 선택하고 글자크기를 변경한다. ●이클립스 테마 적용하기 - 아래 사이트에서 원하는 테마를 다운받튼다.http://www.eclipsecolorthemes.org/ - file->import를 클릭한다. - general->preferences를 선택하고 next를 클릭한다. - 다운받은 템플릿를 선택하고 finish를 누른다. 2014. 7. 1.
자바스크립트 부모창, 상위 프레임 자바스크립트 함수 호출 ●팝업창에서 부모창에 있는 자바스크립트 함수 호출- opener.자바스크립트함수(); ●하위프레임에서 상위프레임에 있는 자바스크립트 함수 호출- parent.자바스크립트함수(); 2014. 7. 1.
자바스크립트 사용자 모니터 크기, 브라우저 크기 구하기 ●사용자 모니터 크기 구하기 ●브라우저 크기 구하기 2014. 7. 1.
자바스크립트 select 태그 size, onchange 이용해서 값 뿌리기 ●예제- select 에서 값을 선택하면 우측 select에 값이 출력됨 12345ABCDEA1A2A3A4A5 2014. 7. 1.
자바스크립트 체크박스 체크 개수 제한하기 ●예제 2014. 7. 1.
반응형