본문 바로가기

Android/Guide

(13)
SoundPool 사용하기 긴 음악이 아닌 간단한 효과음을 내기 위해서 SoundPool 을 많이 사용한다. 사용법은 간단하다. SoundPool 을 선언하고, SDK 버전에 따라 빌더 또는 생성자를 이용하여 선언한다. 이 부분을 onCreate(), onStart() 에서 호출해주고, onStop()에서 릴리즈처리를 한다. private SoundPool soundPool; private void setSoundPool() { if (soundPool == null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { AudioAttributes audioAttributes = new AudioAttributes.Builder() .setUsage(AudioAttrib..
AppCompatActivity 에서 전체화면 (Fullscreen) 요즘은 Activity를 생성하면 아래처럼 하위버전과 모두 호환되는 AppCompatActivity를 기본으로 상속하게 된다.public class SomeActivity extends AppCompatActivity 이때 전체화면과 타이틀을 없애기 위해 예전처럼 Manifest의 application에 아래처럼 기재하면 에러가 발생하게 된다.android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> AppCompatActivity 는 Theme.AppCompat를 사용해야 하기 때문이다. 그래서 기본적으로 생성된 styles.xml 을 아래처럼 변경한다. item 속성으로 windowFullscreen, windowNoTitle을 설정하면 된다. 물론 처..
[Spinner] 스피너 드랍다운 위치/높이 (dropdown position) 조회 조건으로 List 중 하나를 선택할 때 Spinner를 사용한다.안드로이드에서 기본으로 제공하는 layout을 사용하다 보면 몇가지 문제를 만나게 된다. 물론 customize를 하면 입맛에 맞게 만들 수 있으니, 아래는 기본제공 layout을 사용한다는 가정하에 설명한다. 별일이 없다면 아래와 같이 layout을 선언하게 된다.Adapter adapter = new Adapter(this, android.R.layout.simple_spinner_item, list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 1. dropdown 가로/위치 (xml) - spinnerMode = dropdown ..
[AdMob] 애드몹 광고 달기 (2018.12.23 최신 정보 업데이트) 물론 사람이 순수하게 인류의 발전을 위해 앱을 만들어야 하겠지만, 나도 모르게 광고를....순서는 아래와 같다. ㅋ 공식 설정순서는 아래 사이트를 참고하면 된다.https://developers.google.com/admob/android/quick-start 1. AdMob 가입2. Gradle 수정3. AndroidManifest.xml 수정4. layout.xml 수정5. activity 수정6. 주의사항 AdMob 가입 (https://www.google.co.kr/admob/) - 그림 업로드가 안되어 다음에... 가입은 구글계정만 있으면 가능하다.[수익창출] > [새로운 앱에서 수익창출] 을 선택하여 순서대로 등록한다. [앱 선택] - 이미 마켓에 출..
[CustomerListView] 커스텀 리스트뷰 앱을 개발하다보면 은근히 많이 사용되는 것이 리스트이다.리스트에 단순히 텍스트 하나 덜렁있는 경우가 없기에 대부분 커스텀 리스트뷰를 만들게 된다. 리스트뷰가 만들어져 화면에 보여지는 구조는 아래와 같다.하나의 리스트에 보여질 정보는 단순 텍스트일 수도 있고 이미지, 버튼을 포함할 수도 있다 (Data)리스트에 보여지기 위해 화면 layout에 data를 할당 해준다 (Adapter)할당된 정보를 리스트에 adapter를 연결하여 리스트를 보여준다 (selection widget) DATA Data = layout + class 로 구성된다. 만들어진 데이터를 화면에 보여줘야 하니..아래 샘플은 유투브와 같은 형태이며, 상단에 이미지(video_thumnail_imv)와 하단에 제목(video_title_..
[AsyncTask] 비동기작업 - 쓰레드(Thread) 개인적으로 안드로이드 API 중 참 좋아하는 클래스다.좋아하는 이유는 잘 만들어 진 것 같아서 ㅎ 안드로이드 어플리케이션은 메인 쓰레드, 즉 하나의 작업자가 UI를 담당한다. UI 쓰레드라고도 불린다.그래서 다른 영역에서 화면을 컨트롤 하려고 하면 UI 쓰레드만 화면을 그릴 수 있다고 에러를 보여준다.그리고 네트워크등의 시간이 소요되는 작업은 반드시 백그라운드로 수행하라고 가이드한다.참 친절하게도 모든걸 설명해주고 그것을 할 수 있는 AsyncTask 클래스를 제공한다. 위 말을 종합해보면 네트워크 등의 백그라운드로 작업하고 그 결과를 화면에 보여주려면 UI 쓰레드를 이용하라이다.AsyncTask는 백그라운 작업과 UI 쓰레드를 함께 가지고 있으니 완전 깔끔하게 처리할 수 있다. 기본 사용법 기본형태는 ..
[두 자리 국가코드] ISO 3166-1 alpha-2 country code, name Google 관련 API 를 사용하다 보면 Youtube 데이터를 조회할때 두 자리 국가코드가 필요한 경우가 있다. 고정값으로 마스터를 구성해도 되지만, 핸드폰에서 지원하는 국가코드를 가져와야 할 경우 사용하면 된다. 아래는 두 자리 국가코드와 그 이름을 가져오는 방법이다. 핸드폰에 설정된 ISO Country 를 가져온 후, country 로 각 Locale 객체를 생성한다. 그리고 Locale의 getCountrt(), getDisplayCountry() 를 이용하면 두 자리 코드와 이름을 알 수 있다. List list = new ArrayList(); String [] countries = Locale.getISOCountries(); for (String countryCode : countrie..
[EditText] 소프트키보드 처리 / 키보드 엔터,서치 옵션 / 한줄 표시 EditText 위젯은 수많은 옵션 사항들이 있다. 그 중에서 몇가지만 소소하게 기억하고자 글을 남긴다. 소프트키보드 처리 EditText 에 포커스가 들어가면 자동으로 소프트키보다가 올라온다. 키보드를 내리고하자 하거나 다시 올리고자 할 때 사용 하면 된다. 숨길때는 hideSoftInputFromWindow를 사용하며 뷰의 windowToken이 파라메터이며, (숨겨지지 않으면 flag 값을 0으로 해보자) 노출때는 showSoftInput을 사용하며 해당 뷰가 파라메터이다. InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.g..