본문 바로가기

안드로이드73

아드로이드 아이콘 기능이 좋은 앱을 개발만으로 사용자들에게 좋은 평가를 받기가 쉽지 않습니다.디자인이 좋지 않으면 사용자들에게 외면을 받게 됩니다.안드로이드 앱을 개발 때 이쁜 아이콘을 만들려고 노력 하지만 개발자가 디자인 한 아이콘은 확실히 어설프게 보여집니다.구글에서는 기본적인 아이콘을 다운로드 받아서 사용 할 수 있도록 제공하고 있으니 참고하시면 좋을 듯합니다. https://material.io/icons/ 2015. 10. 2.
안드로이드 Action Bar 색상 변경하기 아래의 이미지와 같이 검정색 Action Bar를 빨간색으로 변경하는 방법입니다. 1. 안드로이드 스튜디오에서 Activity 생성 때의 기본 Action Bar 배경 색상. 2. Java Code로 변경한 Action Bar 배경 색상. 3. Activity의 onCreate에 Action Bar 색상 변경 코드. import android.graphics.drawable.ColorDrawable; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; public class ActionBarTestActivity extends ActionBarActivity { @Override protected void onCreate(.. 2015. 9. 30.
안드로이드 - 개발자 옵션 레이아웃 범위 표시 안드로이드 앱을 개발하다 보면 레이아웃(Layout XML)으로 화면을 디자인하게 됩니다.그런데 안드로이드 스튜디오 또는 이클립스에서 레이아웃과 안드로이드 스마트폰에서 보는 레이아웃이 차이가 발생하는 경우가 있습니다.스마트폰에서 개발중이 앱의 레이아웃에서 위젯의 위치를 정확하게 잡기가 쉽지 않습니다.이러한 경우 개발자 옵션의 레이아웃 범위 표시 옵션을 이용하여 위젯의 위치, 여백등을 확인 하여 원인을 찾을 수도 있습니다. 개발자 옵션의 레이아웃 범위 표시 옵션을 지정하는 방법은 아래와 같습니다. 1.설정에서 개발자 옵션중에 레이아웃 범위 표시를 사용으로 변경합니다. (개발자 옵션 설정 방법) 2. 아래와 같이 개발자 옵션 화면에서 위젯의 위치와 크기, 여백 등을 확인 할 수 있습니다. 생각했던 것보다 안.. 2015. 8. 18.
안드로이드 - android.permission.READ_EXTERNAL_STORAGE 안드로이드 앱에서 SD메모리카드 등의 외부저장소에 파일을 읽기 위해서는 퍼미션 "android.permission.READ_EXTERNAL_STORAGE"이 필요합니다. 만일 위의 퍼미션이 없는데 파일을 읽으려고 하면 아래와 같은 Exception이 발생합니다. (미디어 파일을 객체 MediaPlayer에서 읽을려고 할 때 발생한 Exception입니다.) Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=18164, uid=10297 requires android.perm.. 2015. 7. 25.
안드로이드 - java.lang.SecurityException: Permission denied (missing INTERNET permission?) 안드로이드 앱을 개발 시 인터넷(Network)에 접속하려고 할 때 java.lang.SecurityException: Permission denied (missing INTERNET permission?) 발생하는 경우는 인터넷 접속 권한을 주지 않아서입니다. 해결 방법은 AndroidManifest.xml에 아래의 인터넷 접속 권한을 부여하면 됩니다. [전체 AndroidManifest.xml] 2015. 7. 20.
안드로이드 - android.os.NetworkOnMainThreadException 안드로이드 Activity가 바로 실행 될 때 Network으로 웹서버 등에 접속 시 android.os.NetworkOnMainThreadException이 발생합니다. 이러한 경우 Thread를 이용하여 Network에 접속해야합니다. 1. 아래의 코드는 웹서버에 접속하여 HTML을 가지고 오는 코드입니다. Thread를 이용하지 않고 바로 Activity에서 웹서버에 접속하여 HTML을 가지고 올 경우 NetworkOnMainThreadException이 발생합니다. import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView;.. 2015. 7. 19.
안드로이드 - Bitmap(이미지) 사이즈 변경(Scale) 및 회전(Rotation)_하는 방법 안드로이드에서 이미지사이즈 변경 및 회전하는 코드입니다. 1. 이미지 사이즈 변경(Scale) // 가로 2배, 세로 1배인 사이즈 Matrix Matrix matrix = new Matrix(); matrix.preScale(2.0f, 1.0f); // 리소스의 이미지를 Bitmap으로... Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher); // 이미지 사이즈 변경 bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, false); 2. 이미지 회전(Rotation) // 이미지 중심으.. 2015. 6. 24.
안드로이드 - 라이브 배경화면(Live Wallpaper) #3 설정화면 만들기 [라이브 배경화면(Live Wallpaper) 개발 포스팅] - 라이브 배경화면(Live Wallpaper) #1 기본구조 : http://docko.tistory.com/132 - 라이브 배경화면(Live Wallpaper) #2 이미지 넣기 : http://docko.tistory.com/134 - 라이브 배경화면(Live Wallpaper) #3 설정화면 만들기 : http://docko.tistory.com/143 ※ 아래의 내용은 위의 라이브 배경화면 포스팅을 참고하시길 바랍니다. 안드로이드 라이브 배경화면의 설정화면을 제작해보도록 하겠습니다. 작업 순서는 아래와 같습니다. [1] 설정화면(Preference) XML 생성 [2] 설정화면(Preference) Activity 생성 [3] 배경화.. 2015. 6. 22.
안드로이드 - 라이브 배경화면(Live Wallpaper) #2 이미지 넣기 [라이브 배경화면(Live Wallpaper) 개발 포스팅] - 라이브 배경화면(Live Wallpaper) #1 기본구조 : http://docko.tistory.com/132 - 라이브 배경화면(Live Wallpaper) #2 이미지 넣기 : http://docko.tistory.com/134 - 라이브 배경화면(Live Wallpaper) #3 설정화면 만들기 : http://docko.tistory.com/143 ※ 라이브 배경화면 기본 구조는 위의 포스팅을 참고하세요. 1. 라이브 배경화면에 이미지 넣기 import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.service.wallpaper.Wal.. 2015. 6. 12.
안드로이드 - 리소스 이미지를 Bitmap 클래스로 변환하기 안드로이드 앱을 개발할 때 간혹 리소스 이미지를 Bitmap 클래스로 변환해야 할 경우가 발생합니다. 예를 들면 리소스 이미지에 글자를 넣거나, 아니면 다른 가공을 하는 경우겠죠. 아래의 소스는 리소스 이미지를 Bitmap으로 변환하는 코드입니다. - 관련 패키지 & 클래스 import java.io.InputStream; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; - 리소스 이미지를 Bitmap으로 변환하는 코드 public Bitmap getResToBitmap(Context context, int id){ InputStream is = null; Bitmap .. 2015. 6. 12.
안드로이드 - 라이브 배경화면(Live Wallpaper) #1 기본구조 [라이브 배경화면(Live Wallpaper) 개발 포스팅] - 라이브 배경화면(Live Wallpaper) #1 기본구조 : http://docko.tistory.com/132 - 라이브 배경화면(Live Wallpaper) #2 이미지 넣기 : http://docko.tistory.com/134 - 라이브 배경화면(Live Wallpaper) #3 설정화면 만들기 : http://docko.tistory.com/143 안드로이드의 라이브 배경화면(Live Wallpaper)을 만들기 위한 기본 작업을 해보도록 하겠습니다. 아래의 3단계로 작업을 진행하도록 하겠습니다. (1) 라이브 배경화면 클래스 (2) 라이브 배경화면 xml (3) AndroidManifest.xml 설정 1. 라이브 배경화면 클래.. 2015. 6. 12.
안드로이드 - error: Resource entry xxxxxxx is already defined 안드로이드 앱 개발 시 아래의 오류가 발생 할 경우 대체 방법입니다. error: Resource entry xxxxxxx is already defined 1. 이미지 리소스 폴더에 이름이 동일하고 확장자가 다른 파일이 존재하는 경우 발생합니다. - 아래의 확장자가 다르고 동일 이름의 파일 중 하나를 삭제해야 합니다. 2. 이미지 이름을 변경하고 다른 파일을 해당 이름으로 변경하였을 경우 에러가 발생합니다. - 안드로이드 스튜디오의 Build > Clean Project를 수행하면 해당 에러는 해결됩니다. 2015. 6. 11.
안드로이드 - AlertDialog 활용하기 앱 개발 시 다양하게 활용 할 안드로이드의 AlertDilog를 소개합니다. 1. 알림 AlertDialog - 사용자에게 알림 메세지를 AlertDialog를 사용하여 알립니다. (1) Java 소스 AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); dialog.setTitle("알림"); dialog.setMessage("알림 다이얼로그"); dialog.show(); (2) 실행 화면 2. 입력 AlertDialog - 사용자에게 입력을 받아야 하는 경우에 사용합니다. - 즉, 사용자에게 이름, 주소 등의 정보를 입력 받아야 할 경우 유용하게 사용 할 수 있습니다. (1) Java 소스 final EditText etE.. 2015. 6. 4.
안드로이드 - 버튼 모양 바꾸기 버튼의 모양을 바꿔는 작업은 생각보다 간단합니다. 아래의 기본적인 버튼 모양을 바꿔보겠습니다. 1. 안드로이드 프로젝트에서 res>drawable에 button.xml을 추가합니다. 2. Layout의 Activity XML에 버튼의 background 속성에 button.xml을 지정해준다. 3. 변경된 버튼의 모양은 아래의 이미지와 같습니다. 이제 기본버튼이 아닌 조금은 색다른 버튼을 만들어 보세요. 2015. 6. 3.
안드로이드 - 텍스트뷰(TextView) 항상 화면의 아래에 표시하기 안드로이드 앱을 개발하다 보면 특정 View를 일정 높이로 항상 화면의 아래에 표시해야 할 경우가 있습니다. 예를 들면 애드몹이나 애드핏 같은 광고를 붙이 경우가 대표적입니다. 테스트뷰(TextView)를 화면의 아래에 표시하는 방법을 알아보겠는데, 여러 View에서도 동일하게 응용하면됩니다. 아래의 Layout XML에서 LinearLayout의 layout_weight="1"는 로 지정하고, TextView의 height="wrap_content"로 지정합니다. 실행 결과는 아래와 같습니다. 2015. 5. 19.
갤럭시S6 - 멀티윈도우 팝업 창으로 보기 앱을 팝업창으로 보는 방법입니다. 1. 실행된 앱의 외쪽 상단 끝에서 화면은 안쪽으로 드래그합니다. 2.팝업창으로 표시되고, 팝업창의 동그라미 아이콘을 터치합니다. 3.팝업창 메뉴에서 최소화 아이콘을 터치합니다. 4.최소화 아이콘으로 표시됩니다. 2015. 5. 17.
안드로이드 - Activity 가로 또는 세로 고정하기 Activity의 가로 또는 세로로 고정하기 위해서는 AndroidManifest.xml의 activity 속성을 지정하면 됩니다. ㆍ화면 고정 activity 속성 속성명 값 설명 android:screenOrientation portrait 세로 화면으로 고정 landscape 가로 화면으로 고정 1. 세로 화면 고정 : android:screenOrientation="portrait" 2. 가로 화면 고정 : android:screenOrientation="landscape" 2015. 5. 15.
안드로이드 - Activity 실행 때 보이는 소프트 키보드 숨기기 Activity가 실행될 때 EditText의 포커스에 의해 소프트키보드가 보이는 경우가 있습니다. 이러한 경우는 AndroidManifest.xml의 Activity의 설정으로 해결 할 수 있습니다. 아래의 XML에서와 같이 AndroidManifest.xml의 activity 태그에 속성 android:windowSoftInputMode를 "stateHidden"로 지정하시면 됩니다. 2015. 5. 15.
안드로이드 - 리스트뷰(ListView)에 이미지 넣기 ListView에 이미지를 넣는 방법에 대해서 간단한 소스로 알아보겠습니다. 1. 프로젝트 리소스(res)의 drawable 폴더에 이미지를 넣습니다. 2. Activity Layout XML에 ListView를 넣습니다. 3. ListView Item Layout XML을 작성합니다. - XML - Design 4. Activity Java 소스를 작성합니다. - Custom Adapter의 "public View getView(int position, View convertView, ViewGroup parent)" 메소드에 도시명에 따른 이미지 지정 코드를 넣어 리스트뷰의 아이템에 이미지를 변경합니다. public class MainActivity extends Activity { ListView .. 2015. 5. 14.
안드로이드 - EditText에 값(Text) 변경 이벤트 EditText의 값(Text) 변경 때 발생하는 이벤트처리 방법입니다. 1. TextWatcher 인터페이스 - EditText의 값(Text)가 변경될 때 발생하는 이벤트를 처리하기 위해서 사용해야 할 인터페이스입니다. 2. Layout XML - Layout XML에 EditText를 추가합니다. 3. Java - 아래의 코드와 같이 EditText에 Listener를 추가하여 이벤트를 처리하면 됩니다. - 입력이 완료(한글자 단위)되면 호출되는 afterTextChaned 메소드를 주로 사용하게 될 것입니다. public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) .. 2015. 5. 13.
안드로이드 - 텍스트뷰(TextView) 문자 정렬 안드로이드 앱을 개발 할 때 TextView를 많이 사용하게 되고, TextView의 문자를 정렬하게 됩니다. TextView의 문자를 정렬하는 방법에 대해서 알아보겠습니다. ※ 주의 : - TextView내의 문자를 정렬하기 위해서는 layout_width, layout_height의 속성이 "wrap_content"이면 정렬 할 수 없습니다. 1 2 3 4 5 6 7 cs - 아래의 이미지에서처럼 TextView내에서 정렬할 공간이 없으므로 문자를 정렬할 수 없습니다. 1. TextView 기본 문자 정렬 - TextView의 정렬속성인 gravity를 지정하지 않으면 left, top으로 기본 문자 정렬됩니다. 1 2 3 4 5 6 7 8 cs - 문자가 외쪽 상단에 정렬되어있습니다. 2. 문자 가.. 2015. 5. 12.