안드로이드 앱 개발 25

안드로이드 - 10. 수강신청앱 강의 목록 데이터베이스 구축

예제 출처 : https://www.inflearn.com/course 예제 소스 : https://github.com/GaKaRi/gakari_android/tree/master/Proj_Manager_v10 이번 프로젝트 실행 화면 1. COURSE LIST로 간 뒤 COURSE SEARCH 를 누르면 2. 아래와 같이 현재 저장된 데이터들을 뿌려주게 된다. 1. 강의 목록 데이터베이스 구축을 위해 다음과 같이 쿼리문을 입력해줍니다. CREATE TABLE COURSE(courseID INT NOT NULL AUTO_INCREMENT,courseUniversity VARCHAR(50),courseYear INT,courceTerm VARCHAR(50),courseArea VARCHAR(50),cour..

안드로이드 - 프로젝트9. 디자인을 예쁘게 꾸미기

예제 출처 : https://www.inflearn.com/course 예제 소스 : https://github.com/GaKaRi/gakari_android/tree/master/Proj_Manager_v9 이전예제 프로젝트 1. 애플리케이션 화면 디자인 프로젝트 2. 액티비티 화면 전환 프로젝트 3. 데이터베이스 및 서버 구축 프로젝트 4. 로그인 및 메인 화면 구현 프로젝트 5. 회원목록 출력하기 프로젝트 6. 회원목록을 리스트뷰로 출력하기 프로젝트 7. 회원 삭제 및 관리자 기능 프로젝트 8. 회원 검색 기능 추가 이전까지 했던 예제를 다음과 같이 예쁘게 만드는 작업입니다. 물론 기능은 동일합니다. 다음은 로그인 화면입니다. 다음은 로그인 후 화면입니다. 다음은 회원 계정 출력페이지입니다. res..

안드로이드 - 원격 인터페이스 서비스 사용하기

클라이언트에게 자신의 메소드를 제공하려면 자신의 메소드 목록을 인터페이스로 정의해야 한다. 원격에서 호출되는 메소드는 응용 프로그램의 경계를 넘어서 인수를 전달해야 하는 어려움이 있다. 각 응용 프로그램이 사용하는 메모리가 완전히 분리되어 있어 통산의 방법으로는 인수를 넘기기 어렵다. 소속된 패키지가 다름은 물론이고 응용 프로그램 수준보다 더 아래쪽의 저수준일 수도 있으며 심지어 자바가 아닌 다른 언어일 수도 있다. 따라서 전달할 수 있는 인수의 종류가 자바 기본 타입과 Parcelable 정도로 제한되며 그외에도 몇 가지 제약이 존재한다. 안드로이드는 원격 인터페이스를 정의하는 AIDL이라는 별도의 언어를 제공하며 AIDL 컴파일러가 인터페이스 정의를 구현하는 스텁까지 생성해준다. AIDL소스를 작성하..

안드로이드 - 데몬 백그라운드 서비스

서비스는 백그라운드에서 실행되며 사용자와 직접적인 상호작용을 하지 않는다. 전면에서 사용자를 대면하는 액티비티를 위해 연산이나 메소드 등의 서비스를 제공하는 것이 주된 임무이다. 클라이언트에서 어떤 식으로 호출하는 가에 따라 다음 두 가지 방법이 있다. - 백그라운드 데몬 : 배경에서 계속 실행되는 프로세스이다. 클라이언트가 가동시켜 놓기만 하면 사용자의 명령이 없어도 지속적으로 실행된다. - 원격 호출 인터페이스 : 클라이언트를 위해 특정한 기능을 제공하는 역할을 한다. 자신의 기능을 메소드로 노출시키며 클라이언트는 메소드를 호출함으로써 서비스를 이용한다. 사용 용도에 따라 가장 뚜렷한 차이가 발생하는 부분은 서비스의 생명 주기이다. (출처 : http://ccdev.tistory.com/25) 백그라..

안드로이드 - 동전 이미지를 드래그 해보자

이전 예제(드래그 섀도우 이미지 변경하기) 를 응용하여 동전 이미지를 드래그 해보는 예제를 만들어보자. 이번 예제는 다음과 같이 구성된다. (이미지 파일) dragcoin.xml " DragCoin.java package com.example.ch27_dragcoin; import android.app.Activity; import android.content.ClipData; import android.graphics.Canvas; import android.graphics.Point; import android.os.Bundle; import android.view.DragEvent; import android.view.MotionEvent; import android.view.View; import..

안드로이드 - 드래그 섀도우 이미지 변경하기

드래그 섀도우는 드래그 중임을 나타내는 반투명한 이미지이다. 드래그를 시작하는 startDrag의 인수로 섀도우 이미지를 생성하는 View.DragShadowBuilder 객체가 전달되며 빌더에 의해 섀도우 이미지가 결정된다. 빌더는 다음 2개의 생성자가 있다. View.DragShadowBuilder(View view) View.DragShadowBuilder() View getView() view를 인수로 전달하면 뷰와 같은 모양의 섀도우를 생성하며 터치한 곳이 뷰의 중앙에 맞추어진다. 생성자로 전달받은 뷰는 언제든지 getView 메소드로 다시 참조할 수 있다. 드래그 대상 뷰의 크기만한 커스텀 섀도우를 그릴 때 뷰의 크기를 참조할 수 있고 기타 뷰의 여러 속성을 조사할 수 있다. 그러나 디폴트 섀..

안드로이드 - startDrag메소드를 이용한 드래그 & 드롭 구현하기

드래그 & 드롭은 모바일에서 환경에서 구현하기 위해 롱클릭이나 터치 다운 등의 이벤트에서 다음 메소드를 호출한다. boolean startDrag(ClipData data, View.DragShadowBuilder shadowBuilder, Object myLocalState, int flags) data는 드래그할 데이터이며 클립 데이터 객체를 사용한다. data 안에 교환 대상 데이터는 물론이고 데이터의 특성을 설명하는 메타 데이터도 포함되어 있다. 클립보드로 교환할 수 있는 데이터는 드래그 앤 드롭으로도 교환할 수 있다. shadowBuilder는 드래그 중에 보여줄 이미지인 섀도우를 작성하며 시스템은 이 객체의 콜백 메소드를 호출하여 섀도우 이미지를 얻는다. 빌더의 생성자로 뷰객체를 전단하면 뷰와..

안드로이드 - 클립보드를 통한 인텐트 복사

클립보드에 들어가는 데이터가 인텐트라는 것만 다를 뿐 텍스트 복사와 별 차이가 없다. 예제는 다음과 같이 구성된다. copyintent.xml CopyIntent.java package com.example.ch27_copyintent; import android.app.Activity; import android.content.ClipData; import android.content.ClipDescription; import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import an..

안드로이드 - 클립보드를 이용해서 URI 복사하기

이미지나 구조체 같은 복잡한 데이터는 URI를 통해 간접적으로 복사한다. 붙여 넣는 쪽에서는 URI를 먼저 구하고 CP에게 데이터를 요청하여 실제 데이터를 구하는 방시긍ㄹ 쓴다. URI로 데이터를 전달하려면 주는 쪽에서는 이 URI에 반응할 수 있는 CP를 반드시 제공해야 한다. 다음 예제를 실행하려면 콘텐트프로바이더 예제를 먼저 실행 시켜서 insert버튼을 눌러둔다.. 또한 위의 콘텐트프로바이더 예제의 매니페스트 파일에서 다음과 같이 grantUriPermissions를 선언해야 한다. 안그러면 Permission 에러가 발생한다.( 여기 참고) 위와 같이 수정해야 할 것은 3군데이다. 다음은 AndroidManifest.xml 파일이다. 여기서 유의할 점은 ContentProvider를 사용하기위해..

안드로이드 - 시스템 클립보드를 활용한 데이터 복사 붙여넣기

클립보드는 임의의 응용 프로그램끼리 데이터를 교환하는 가장 기본적인 방법이다. 이것은 드래그&드롭에 의한 데이터 교환을 위해 범용적인 데이터 포맷을 정의할 필요도 있는데 클립보드 포맷이 그 역할을 맡게 된다. 시스템 클립보드는 운영체제가 관리하는 임시적인 자료 저장소이다. 임의의 프로그램이 클립보드를 자유롭게 액세스 할 수 있으므로 프로그램 내부의 뷰끼리는 물론이고 응용 프로그램끼리도 약속된 방법으로 데이터를 교환할 수 있다. 시스템 클립보드는 다음 4가지 포맷을 지원한다. 1. 텍스트 : 가장 일반적인 교환 대상 2. URI : 복잡한 형태의 데이터는 CP가 제공하며 데이터의 위치를 가리키는 URI를 클립보드에 저장한다. 3. 인텐트 : 앱을 실행하는 명령과 관련 데이터를 클립도르를 통해 전달한다. 액..

반응형