본문 바로가기

Android/Basic

(28)
[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..
[Android] 인터넷 연결상태 체크하기 인터넷 연결 상태인터넷 연결 상태는 크게 연결된 상태와 연결되지 않은 상태로 나눌 수 있다.연결된 상태는 다시 무선랜(WIFI)으로 연결된 상태와 모바일 데이터(3G/LTE)로 연결된 상태로 나누어진다. 인터넷 연결 상태 확인하기우선 매니페스트에 연결상태를 확인할 수 있는 권한을 추가해주어야한다. 연결된 상태만을 알고싶다면, 다음과 같이 간단하게 구현하면 된다.public Boolean isNetWorkConnected() { ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = manager != null ? manager.get..
[Android] SQLiteOpenHelper 헬퍼클래스는 데이터베이스 버전을 지정하여 데이터베이스를 업그레이드할 때 알 수 있도록 도와준다. 그리고 현재 단말에 설치된 앱의 테이블이 새로 만들어지는지, 아니면 기존에 만들어져있던 테이블을 업그레이드해야 하는지를 알려준다.헬퍼클래스는 SQLiteOpenHelper를 상속받아 구현할 수 있다.SQLiteOpenHelper를 상속받으면, 기본 생성자와 메소드 2가지를 오버라이드해야한다. class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factor..
[Android] 웹에서 Image 다운로드 외부 라이브러리 없이 AsyncTask를 이용해 이미지를 다운받아보는 예제 다운로드 할 이미지 주소(네이버-앤트맨과 와스프): https://movie-phinf.pstatic.net/20180530_170/1527645793223uhWgz_JPEG/movie_image.jpg 1. AsyncTask 클래스 만들기public class ImageLoadTask extends AsyncTask { private String urlStr; private ImageView imageView; private ProgressBar progressBar; // 요청 url과 비트맵 객체 매핑, 메모리 관리 위한 것 private static HashMap bitmapHash = new HashMap(); publi..
[Android] Gson을 이용한 JSON 변환 자바스크립트의 경우 JSON과 포맷이 같기 때문에 따로 변환해줄 필요가 없는데, 자바에서 JSON 객체를 다루기 위해서는 자바 객체로의 변환이 필요하다. Gson은 구글에서 만든 JSON 문자열을 객체로 변환해주는 라이브러리이다. * 샘플 API 주소 : http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=430156241533f1d058c603178cc3ca0e&targetDt=20120101 외부라이브러리 이므로 gradle에 다음 한줄을 추가해준다.implementation 'com.google.code.gson:gson:2.8.2' 사이트에 가서 확인해보면 JSON형태로 되어있는..
[Android] Volley 라이브러리를 활용한 서버 통신 웹페이지에 그냥 요청해서 html 형식으로 불러와 텍스트뷰에 뿌려보는 예제. 0. Volley 라이브러리 추가implementation 'com.android.volley:volley:1.1.0' 1. 인터넷 권한 추가 2. xml 레이아웃 작성 3. Helper 클래스 작성 * Volley는 RequestQueue 객체로 서버 연결을 제어하는데, 이 객체는 애플리케이션에서 하나만 만들어지도록 하기 위해 별도의 클래스에 static 멤버로 선언. -> 싱글톤 패턴에 맞추면 더 좋을듯 하다.public class AppHelper { public static RequestQueue requestQueue; } 4. 메인 액티비티 클래스 작성public class MainActivity extends App..
[Android] HttpURLConnection 예제 최종 업데이트 20.09.25HttpURLConnection 을 이용하여 웹페이지의 내용(html) 을 읽어오는 예제 0. 먼저 Manifest.xml 에 권한을 추가한다. 1. 웹페이지의 내용을 뿌려줄 화면 레이아웃을 구성한다.editText에 있는 링크에 접속해서 textView에 내용 뿌려주는 뷰로 구성되어있다. 2. 웹페이지에 연결할 Thread 클래스를 만든다.스레드를 따로 만들어야하는 이유는, 작업시간이 오래걸릴 수 있는 IO 작업(서버통신)을 메인스레드에서 작업할 경우 블로킹이 발생할 수 있기때문에 안드로이드 자체적으로 익셉션이 발생한다. 따라서 IO 작업은 백그라운드 스레드로 수행해야한다. class RequestThread extends Thread { public void run(){ ..