프로그래밍/안드로이드20 안드로이드 스튜디오 설치하는 방법 이제 스마트폰 시대라해도 과언이 아닐정도로 스마트폰이 발전하였습니다. 스마트폰 OS(운영체체)는 애플의 IOS와 구글의 ANDROID 양파전으로 흐르고 있는데요. 많은 개발자들이 이 스마트폰 개발자로 뛰어들고 있습니다. 기존에는 이클립스에서 안드로이드 개발 작업을 했지만 이제 안드로이드 스튜디오로 개발 할 것을 권장하고 있습니다. 이미 많은 개발자들이 안드로이드 스튜디오로 개발을 하고 있습니다. ANDROID STUDIO(안드로이드 스튜디오)설치 방법에 대해서 알아보도록 하겠습니다. (참고로 이 포스트는 윈도우7 환경에서 작업 되었습니다.) https://developer.android.com/studio/index.html?hl=ko 안드로이드 스튜디오 설치파일을 위 사이트에서 다운 받습니다. 다운받기.. 프로그래밍/안드로이드 2017. 11. 20. [안드로이드] TTS(TextToSpeech) 음성출력 사용하기 TTS (Text To Speech) 안드로이드 기능중에 텍스트를 읽어주는 TTS(Text To Speech)라는 특별한 기능이 있다. 이 기능으로 인해서 따로 성우의 목소리로 녹음을 하지 않아도 텍스트 작업으로만으로도 음성 출력 기능을 사용할 수 있다. 사용 방법은 간단하다. 1. TTS 객체를 생성한다. 2. TTS를 초기화 한다. 3. 원하는 문장을 음성 출력한다. 4. 사용 후 객체를 제거한다. 위 순서대로 코드를 만들어 본다. * activity_main.xml 위와 같이 테스트할 레이아웃을 만들고 자바코드 작업을 한다. * MainActivity.java package com.studio572.sampletts; import android.os.Bundle; import android.spee.. 프로그래밍/안드로이드 2017. 8. 26. [안드로이드] Margin 과 Padding의 차이점과 사용방법 - (마진과 패딩 차이점) *Magin과 Padding의 차이점과 사용방법 안드로이드 개발시 위젯을 위치할 때, margin과 padding을 사용하여 임의의 수치만큼 여백을 둘 수 있다. margin 과 padding의 사용되는 상황을 아래 그림으로 살펴본다. 위 그림을 보면 주황색의 TextView 위젯이 놓여져있다. 그 뒤에는 초록색의 부모 레이아웃이 위치한다. Margin : 위젯(여기서는 TextView)이 부모 레이아웃의 테두리로부터의 여백을 말한다. android:layout_marginTop, android:layout_marginBottom, android:layout_margin_left, android:layout_marginRight 의 속성으로 상하좌우의 여백을 각각 지정할 수 있다. Padding : 위젯.. 프로그래밍/안드로이드 2017. 8. 25. [안드로이드] ActionBar에서 Tab, ViewPager 사용하기 액션바 근래에 배포되는 앱을 보면, 앱 상단에 타이틀바 외에도 액션바를 사용하는 것을 많이 볼 수 있다. 액션바 기능중에 탭은 스마트폰의 작은 화면을 효율적으로 사용할 수 있는 기능중에 하나이다. 여기서 탭과 스와이프로 프라그먼트 3개화면을 사용하는 앱을 만들어본다. * actionbar_n_tabbar01.xml MainActivity 에 참조될 레이아웃이다. 스와이프로 화면이동 할 수 있게하는 android.support.v4.view.ViewPager 를 정의한다. * fragment1.xml 첫번째 Tab에 출력될 프라그먼트이다. * fragment2.xml 두번째 Tab에 출력될 프라그먼트이다. * fragment3.xml 세번째 Tab에 출력될 프라그먼트이다. 프라그먼트를 상속받는 클래스를 3.. 프로그래밍/안드로이드 2017. 8. 24. [안드로이드] ImageView에 Bitmap 최적화 로딩하기 - OutOfMemoryError 처리 안드로이드 이미지뷰에 비트맵 이미지를 로딩하다 보면 java.lang.OutOfMemoryError 가 발생하는 경우가 있다. 이미지 용량이 너무 커서 발생하는 에러이다. 이미지 용량이 몇 메가 이상일 때(?) 라는 정해진 용량은 없는것 같다. 스마트폰에 따라 또는 안드로이드 OS에 따라 에러가 발생하는 이미지의 용량은 다를 수 있다. 그럼 이 현상을 어떻게 처리하면 될 것인가? 로드할 비트맵 이미지의 사이즈를 줄여서 이미지의 용량을 줄이는 방법을 사용한다. 하지만 이미지 사이즈를 너무 줄이면 해상도가 떨어져 알아볼 수 없을 정도가 되기 때문에 적당한 크기로 줄이는 것이 좋을 것이다. 아래에 OutOfMemoryError가 발생할 때 처리하는 소스 코드를 살펴본다. 코딩에 앞서 res/drawable/ .. 프로그래밍/안드로이드 2017. 8. 23. [안드로이드] ImageView scaleType 속성별 차이 예제 안드로이드의 이미지를 출력하는 ImageView의 속성중 scaleType에 대해서 알아본다. 위젯 ImageView를 아래와 같이 작성한다. 이미지뷰에 sample_image를 출력할 것이다. 이 때 android:scaleType 속성의 옵션값에 따라 이미지 비율, 크기 등이 다르게 출력된다. * android:scaleType의 옵션값은 8개로 나누어진다. 1. android:scaleType="center" : 이미지 원본 크기와 비율을 유지하며 이미지의 중앙을 layout_width, layout_height 안에 출력한다. 이 때 레이아웃보다 이미지가 크면 레이아웃의 벗어난 이미지는 출력되지 않은다. 레이아웃보다 이미지가 작으면 이미지를 center 정렬 한다. java코드일때 - ImageV.. 프로그래밍/안드로이드 2017. 8. 22. [안드로이드] ImageView에 이미지 출력하기 안드로이드 이미지뷰에 이미지를 출력하는 방법은 여러가지이다. 자주 쓰이는 4가지 방법을 알아본다. 1. ImageView.setImageResource(R.drawable.image_sample) : res/drawable/ 폴더의 image_sample 이미지를 load하여 출력한다. 2. ImageView.setImageResource(Uri uri) : Uri에 이미지 파일 경로를 parse하여 image를 load하여 출력한다. 3. ImageView.setImageBitmap(Bitmap bitmap) : 비트맵을 load하여 보여준다. 4. ImageView. setImageDrawable(Drawable drawable) : Drawable형식의 image를 load하여 출력한다. 이 때, .. 프로그래밍/안드로이드 2017. 8. 21. [안드로이드] Thread(쓰레드)에서 UI 변경하기 - runOnUiThread 사용하기 안드로이드는 UI 작업(업데이트)시에는 특정 UI Thread에서 사용하도록 되어있다. 그래서 UI Thread가 아닌 Thread에서 사용하면 오류가 발생한다. 이 때 Thread에서 UI작업을 할 수 있는 방법에 대해 알아본다. UI Thread를 구현하는 코드는 꽤 간단하다. Sub Thread 에서 UI작업시 runOnUiThread()를 사용한다. 사용예는 아래와 같다. runOnUiThread(new Runnable() { @Override public void run() { // 이 곳에 UI작업을 한다 } }); 실제 Thread에서 runOnUiThread를 사용하는 샘플 프로젝트 소스를 살펴본다. * activity_main.xml * MainActivity.java package co.. 프로그래밍/안드로이드 2017. 8. 20. [안드로이드] Camera Preview - 카메라 프리뷰 만들기 안드로이드는 카메라 기능을 사용할 수 있게 API를 제공한다. 증강현실 같은 앱도 카메라 기능을 필요로 한다. 카메라 기능이 필요한 것들중에 기초가 되는것이 바로 Camera Preview이다. 카메라 프리뷰는 SurfaceView를 사용하여 구현된다. 이 기초가 되는 카메라 프리뷰에 대해 알아본다. * MainActivity.java package com.studio572.samplecamerapreview; import android.Manifest; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.hardware.Cam.. 프로그래밍/안드로이드 2017. 8. 19. [안드로이드] 상태바, 타이틀바 숨기기(제거), 전체화면 - StatusBar,TitleBar , Full Screen 안드로이드 프로젝트 생성시 기본으로 ActionBar(액션바) 또는 TitleBar(타이틀바)가 자동으로 생성된다. 또 최상단에는 StatusBar(상태바)가 자리잡고 있다. 개발자는 사용자의 요구에 따라 ActionBar(액션바), TitleBar(타이틀바), StatusBar(상태바) 를 숨겨야 할 때가 있다. 이들을 숨기는 방법을 알아본다. 1. 타이틀바 숨기기 - 상속에 따른 숨기기 android.app.Activity Activity를 상속받는다. - AndroidManifast.xml 에서의 숨기기 android:theme="@style/Theme.AppCompat.Light.NoActionBar" activity 속성에 위 코드를 추가한다. - 동적 숨기기 supportRequestWindo.. 프로그래밍/안드로이드 2017. 8. 18. [안드로이드] Intent (인텐트) 에 대해 알아보자 * Intent(인텐트)안드로이드의 애플리케이션 구성은 4대 컴포넌트로 이루어져 있습니다.4대 컴포넌트- 1. 액티비티(Activity)- 2. 서비스(Service)- 3. 브로드캐스트 리시버(Broadcast Receiver)- 4. 컨텐트 프로바이더(Content Provider) 이 각각의 컴포넌트간의 통신을 맡고 있는 것이 Intent(인텐트)입니다. 인텐트 사용법을 알아보겠습니다. Intent 의 통신 방법은 두가지(명시적, 암시적) 방법이 있습니다. - 1. 명시적 Intent- 2. 암시적 Intent 1. 명시적 인텐트 - 명시적 인텐트는 가장 많이 볼 수 있는 방법입니다. 바로 앱의 화면전환를 하는 방법입니다.하나의 액티비티에서 다른 액티비티로의 화면 전환시 사용하는 것입니다... 프로그래밍/안드로이드 2017. 8. 17. [안드로이드] Android 6.0 Marshmallow (마시멜로우)에서 권한 처리작업 안드로이드가 최적화 단계를 거치며 업데이트 하면서 OS 버전 6.0 Marshmallow (마시멜로우)에서부터는 AndroidManifest.xml에 정의하는 권한을 사용자에게 동의를 받아야만 해당 기능을 사용할 수 있게 되었습니다. 그리하여 매니페스트에만 정의했던 permission(권한)을 사용자에게 동의 받는 절차를 코딩해봅니다. 기존에는 매니페스트에 아래와 같이 권한을 정의 했었습니다. 임의로 파일 읽기 권한과 파일 쓰기 권한을 요청합니다. 이렇게 권한을 선언하고 앱을 사용하면 되었습니다. 하지만 6.0 마시멜로우부터는 해당 권한이 필요한 곳에 권한 동의 메시지를 통해 권한사용을 동의 받아야 합니다. 여기서는 MainActivity 클래스에서 파일 읽기 권한과 파일 쓰기 권한을 요청하는 예제로 설.. 프로그래밍/안드로이드 2017. 8. 16. 이전 1 2 다음 💲 추천 글