본문 바로가기

전체 글

(70)
[Android] 페이지 슬라이딩 페이지 슬라이딩페이지 슬라이딩은 버튼 등을 눌렀을 때 보이지 않던 뷰가 슬라이딩 방식으로 보이는 것으로, 여러 뷰를 하나씩 전환하면서 보여주는 방식에 애니메이션을 결합한 것이다.삼성페이처럼 밑에 숨어있던 카드를 스윽 위로 빼거나, 옆에서 숨겨져있던 화면을 나타나도록 해주는 애니메이션도 위와 같은 방식과 비슷한것 같다. 이와 같은 애니메이션은 라이브러리로도 많이 구현되어있지만, 직접 액션을 구성해 애니메이션을 보여줄 수 있다.그래서 이번에는 옆에서 새로운 화면이 스윽 나오는 간단한 애니메이션을 보여주는 예제를 구현해볼 것이다. 화면 레이아웃 만들기먼저 여러개의 뷰를 중첩해서 보여줄 수 있는 프레임 레이아웃 위에 기본적으로 깔려있는 배경 화면, 옆에서 슬라이드 해서 빼낼 화면을 구성한다.버튼을 누르면 숨겨져..
[Android] 트윈 애니메이션 트윈 애니메이션은 보여줄 대상(예를들면 View, Drawable 객체 등등)을 적절하게 연산한 후 그 결과를 연속적으로 디스플레이하는 방식을 제공한다.보여줄 이미지를 일일이 지정하는 것이 아니고, 애니메이션을 보여줄 대상과 변환 방식만 지정하면 간편하게 애니메이션 효과를 보여주는 것이다.애니메이션 대상만 지정하면 시스템이 내부적으로 적절하게 연산하는 과정을 거친다. 트윈 애니메이션트윈 애니메이션의 대상과 애니메이션 효과는 다음과 같이 구분할 수 있다. 구분 이름 설명 대상 뷰 View 는 위젯, 레이아웃을 모두 포함 그리드 객체 다양한 Drawable 에 애니메이션 적용 가능. ShapeDrawable 은 캔버스에 그릴 도형을 지정할 수 있고, BitmapDrawable 은 비트맵 이미지를 지정할 수 ..
[Android] 스레드 애니메이션 스레드를 이용하여 이미지를 교체시켜주는 (슬라이드처럼) 단순한 예제이다.버튼을 누르면 이미지뷰에 동적으로 이미지가 변경되기 시작한다. (이미지 슬라이드 시작) 수업에서는 Thread 클래스를 상속받아 애니메이션을 위한 스레드 클래스를 생성해서 start 메서드를 이용해 이미지 애니메이션을 구현해보았다. 먼저 버튼과 이미지뷰만 있는 화면을 구성한다. 각 뷰의 ID 를 findViewById 메서드로 등록해주고, 액티비티의 멤버변수로 Drawable 객체를 담을 ArrayList 와 UI 를 접근할 핸들러 객체를 선언해준다. (예전에 포스팅했듯이, UI 접근은 핸들러를 통해서만 해야한다. ImageView 에 set 하는 것과 같이 Thread 에서 직접 UI 를 접근할 경우 오류가 발생한다. 참고 : ht..
[Java] toString() 메서드 toString 메서드toString() 메서드는 모두 클래스 인스턴스의 데이터를 문자열로 반환하는 메서드이다. 이 메서드를 클래스에서 정의하는 것은 개발자 간의 약속이라고 할 수 있다. 원래 toString()은 java.lang 패키지의 클래스에서 다음과 같이 정의된 메서드이다. 그리고 클래스 이름@해시값의 형태로 문자열을 반환한다.★ Note : 해시값은 Java가(?) 인스턴스에 임의의 값을 부여한 것.public class Object { // 중략 public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } // 중략 } Java의 모든 클래스는 Object 클래스를 상속받는다. ..
[Android] 음성 녹음하기 이번엔 음성을 녹음하는 간단한 앱 예제 (급해서 대충 빨리 씀) * 오디오 녹음을 위한 과정1. 미디어 리코더 객체 생성 - 오디오 녹음을 위해 미디어리코더 객체를 new 연산자를 이용하여 만듬2. 오디오 입력 및 출력 형식 설정 - 오디오 정보를 입력받을 데이터 소스와 함께 출력 형식을 설정함3. 오디오 인코더와 파일 지정 - 오디오 파일을 만들 때 필요한 인코더(Encoder)와 함께 파일 이름을 지정함4. 녹음 시작 - 녹음을 시작하면 오디오 파일이 만들어지고 인코딩된 바이트 스트림이 저장됨5. 매니페스트에 권한 설정 - 애플리케이션에서 녹음을 하려면 RECORD_AUDIO 권한이 있어야 하므로 추가 0. Manifest 에 권한 추가 (위험권한이므로 별도의 check 필요. http://one-d..
[Android] 동영상 재생하기 음악 플레이어의 경우 화면이 없기 때문에 레이아웃을 딱히 추가할 필요가 없지만, 동영상 플레이어는 화면을 띄워주어야 하기 때문에 별도의 레이아웃을 구성해야한다. 이 레이아웃을 구성하기 쉽도록 제공하는 것으로 VideoView 가 있다. 이 뷰에서 제공하는 메서드를 사용하기만 하면 된다. 0. manifest 에 권한 추가 1. xml 레이아웃 구성 2. 메인 액티비티 여기서 VideoView 객체를 찾아 미디어 컨트롤러를 설정하거나, 동영상 파일의 위치를 설정할 수 있다. 미디어 컨트롤러는 동영상 재생이나 중지를 위한 버튼과 같은 화면을 보여주는 역할을 한다.public class MainActivity extends AppCompatActivity { public static String url = "..
[Android] 음악 재생하기 이번에는 안드로이드 앱으로 음악 재생하기!첫번째로 url 을 통해 웹서버에 있는 음악을 재생하는 방법,두번째로 프로젝트 내 리소스 폴더에 있는 음악을 재생하는 방법을 다뤄보도록 할 것이다. 첫번째 방법 - 웹서버에 있는 음악 재생하기 0. 인터넷이 필요하기 때문에 manifest 에 다음 권한을 추가한다. 1. xml 레이아웃 대충 만들기 2. 메인 액티비티 작성따로 클래스 만들 필요도 없고 그냥 MediaPlayer 객체만 갖다 쓰면 된다. (안드로이드에 이미 다 있다는거에 감탄했다.)amr 파일은 녹음파일의 확장자로, http://sites.google.com/site/ubiaccessmobile/sample_audio.amr 을 사용했다.public class MainActivity extends ..
[Android] 카메라로 사진 촬영하기 안드로이드 앱에서 사진을 촬영하는 방법은 크게 두가지가 있다.가장 간단한 방법은 Intent 를 이용하여 단말에 설치된 카메라 어플을 실행하는 것이고, 다른 방법은 surfaceview 를 이용해 카메라 미리보기 화면을 직접 집어넣어 구현하는 방법이 있다. (카메라 미리보기는 서피스뷰를 사용하므로 서피스뷰 사용 패턴을 그대로 사용한다. 뭔소린지 모르겠다) 0. manifest 에 권한을 추가한다. (위험 권한이므로 별도의 메시지를 띄워 권한을 받아야한다. http://one-delay.tistory.com/10?category=766130 참고) 1. 간단한 화면 구성 (xml) 2. 메인 액티비티public class MainActivity extends AppCompatActivity { privat..