그래픽 Canvas 클래스: 점,선,원,사각형,텍스트 등 그리기 DrawPoint : 점 DrawCircle : 원 Drawline : 선 drawtext : 글자 drawRect : 사각형 drawOval : 원, 타원 Paint 클래스 : 색상, 스타일, 펜 두께, 글꼴 전체적인 그래픽 작업 순서 뷰 클래스에서 상속받은 커스텀 뷰를 새롭게 만듦 onCreate 함수에서 커스텀 뷰에 대해 지정 onDraw 함수에서 도형을 그림 실습 class MyCustomView extends View { //생성자 public MyCustomView(Context mycontext) { super(mycontext); setBackgroundColor(Color.LTGRAY); } //onDraw @Override..
대화상자 (Dialog) 사용자에게 메시지를 출력하고 사용자로부터 입력을 받아들이는 보편적인 사용자 인터페이스 사용자에게 중요한 사항을 알려준 후, 어떤 선택을 하게 하는 것이 목적 대화상자 생성 : AlertDialog.BUilder 클래스로 생성 용도에 따른 생성 setTitle() : 제목 설정 setMessage() : 내용 입력 setPostiveButton() : OK 버튼 setNegativeButton() : Cancel 버튼 setSingleChoiceItems() : 라디오버튼 목록 출력 setMultiChoiceItems() : 체크박스 목록 출력 대화상자 화면 출력 show() 실습 대화상자 Java 코드 (버튼없음) @Override protected void onCreate(Bu..
메뉴의 종류 옵션 메뉴 : 사용자가 옵션 MENU 키를 누를 때 나타남 컨텍스트 메뉴 : 사용자가 화면을 일정 시간 이상으로 길게 누르면 나타나는 메뉴 각 메뉴 아이템에 대한 속성 Id Icon Title showAsAction : 정의 유무에 따라 메뉴 아이템 표시 여부 메뉴 팽창 (inflate) 메뉴 리소스를 팽창(inflate)하면 실제 메뉴가 생성 Java 코딩 : onCreateOptionMenu() 메소드 오버라이딩 → 메뉴 파일 등록 Java 코딩 : onOptionslitemSelected() 메소드 오버라이딩 → 메뉴 선택 시 작동할 내용 코딩 // onCreateOptionMenu() 메소드 기본 형식 public boolean onCreateOptionMenu(Menu menu) {..
터치 이벤트 뷰의 콜백 메소드 재정의 : 커스텀 뷰를 정의하고 onTouchEvent() 재정의 리스너 등록을 통한 터치 이벤트 처리 class MyView extends View { @Override public boolean onTouchEvent(MotionEvent event) { x = (int) event.getX(); // 터치 지점의 위치 정보 필요 y = (int) event.getY(); ... } } 터치 이벤트 종류 Event에 들어있는 action code ACTION_DOWN : 누르는 동작 시작 ACTION_UP : 누르고 있다가 뗄 때 발생 ACTION_MOVE : 누르는 도중 움직임 ACTION_CANCEL : 터치 동작 취소 ACTION_OUTSIDE : 터치가 현재의 위..
실습내용 버튼 만들기 버튼을 클릭하면 바탕색 변경 XML코드에 이벤트에 따른 콜백함수 지정 //XML코드 //JAVA 코드 public class MainActivity extends AppCompatActivity { Button btn; protected void onCreate(Bundle savedInstanceState) { ... btn = (Button)findViewById(R.id.button); } public void onbuttonClick(View v) { // onbuttonClick 함수 구현 v.setBackgroundColor(Color.YELLOW); } } 이벤트처리 객체를 통한 방법 //JAVA 코드 public class MainActivity extends AppC..
레이아웃 ViewGroup 클래스로부터 상속받은 것 내부에 위젯들을 담아 위치 규정 레이아웃의 종류 LinearLayout : 왼쪽부터 오른쪽 또는 위쪽부터 아래쪽으로 차례로 배치 제약 레이아웃 : 각 위젯들은 이웃한 위젯 혹은 부모인 레이아웃과 상대적인 관계 및 거리를 이용한 위치 지정 프레임레이아웃 : 위젯들을 왼쪽 위에 일률적으로 겹쳐서 배치하여 중복해서 보이는 효과 레이아웃의 주요 속성 orientation vertical : 위젯의 배치를 수직방향으로 쌓음 horizontal : 위젯의 배치를 수평방향으로 쌓음 gravity : 레이아웃 안에 있는 위젯들을 어느쪽 방향에 배치할 것인지 결정 top, bottom, center ... 등 layout_gravity : 각각 위젯마다 어느쪽 방향에 ..
View 클래스 안드로이드 화면에서 실제로 보여지는 것들은 모두 View 클래스 상속을 받음 뷰 클래스는 다른 말로 위젯 여러 개의 위젯을 담을 수 있는 위젯을 레이아웃 레이아웃은 ViewGroup 클래스 아래 존재 UI를 작성하는 두 가지 방법 UI를 작성하는 절차 뷰 그룹 생성 : default로 1개의 뷰 그룹이 만들어짐 ( 하나의 화면에 여러 뷰 그룹도 가능 ) 필요한 뷰(위젯)를 적절한 위치에 추가 액티비티 화면으로 설정 XML로 UI 작성 비주얼 도구에서의 드래그앤드롭을 톨한 UI -> xml 코드 자동 생성 자바 코드를 통한 UI 작성 컨테이너 객체 생성 뷰 객체 생성 Setcontentview 지정 View 클래스의 XML 속성 id 속성 id 속성은 모든 위젯의 아이디를 나타냄 Java ..
애플리케이션 PC의 애플리케이션은 다른 애플리케이션의 코드를 사용할 수 없음 안드로이드에서는 다른 애플리케이션의 컴포넌트를 사용할 수 있음 애플리케이션 실행단계 애플리케이션은 컴포넌트로 이루어짐 액티비티 서비스 방송 수신자 컨텐트 제공자 액티비티 (Activity) 사용자 인터페이스 화면을 가지는 하나의 작업 액티비티들이 모여서 애플리케이션이 됨 서비스 (Service) 백그라운드에서 실행되는 컴포넌트로서 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업 예) 배경 음악을 연주하는 작업 방송 수신자 (broadcast reciver) 방송을 받고 반응하는 컴포넌트 예) 배터리가 7% 남았습니다 컨텐트 제공자 (content provider) 데이터를 관리하고 다른 애플리케이션에게 제공하는 컴포넌트 인..