본문 바로가기

안드로이드142

안드로이드 외부 폰트 Layout XML에 적용하기 안드로이드 앱 개발 시 외부 폰트를 적용하는 방법은 Typeface 객체를 이용하는 방법이 있습니다. 하지만 이 방법은 Layout 디자인에는 표시가 안되기 때문에 디자인 적용을 디버깅에서 확인 해야 하죠. Layout XML에 외부 폰트를 적용하는 방법인데 간단합니다. 1. res(리소스) 하위에 font 디렉토리를 생성하고 외부 폰트를 복사해서 넣습니다. (주의 할 것은 외부 폰트명은 소문자와 "_" 만으로 구성해야 합니다.) 2. Layout XML에 아래와 같이 fontFamily를 지정하면됩니다. 3. 안드로이드 스튜디오 Layout 편집기에서 아래와 같이 확인 할 수 있습니다. 2020. 8. 7.
안드로이드 Action Bar 숨기기, Full Screen을 Style XML로 설정하기 안드로이드 프로젝트를 생성하고, styles.xml에서 Action Bar를 숨기거나 Full Screen을 설정하는 방법입니다. styles.xml 은 아래의 경로에 있습니다. 1. Actin Bar 표시 styles.xml 설정 windowActionBar = true, windowNoTitle = false, windowFullscreen = false 로 설정 2. Actin Bar 숨기기 styles.xml 설정 windowActionBar = false, windowNoTitle = true, windowFullscreen = false 로 설정 3. Full Screen styles.xml 설정 windowFullscreen = true 로 설정 (windowActionBar = true 와.. 2020. 8. 4.
안드로이드 ImageView를 흑백(Gray Scale)으로 표시하기 안드로이드의 ImageView의 이미지를 흑백으로 만드는 방법입니다. 아래의 코드는 ListView의 Adapter에 적용한 예입니다. ImageView ivNationFlag = (ImageView)v.findViewById(R.id.iv_nation_flag); ivNationFlag.setImageResource(NationFlagHelper.getNationFlagRes(quiz.name)); if(isOk){ // 컬러 필터를 제거하여 원본으로 표시 ivNationFlag.setColorFilter(null); }else{ // 컬러 필터를 흑백으로 변경 ColorMatrix matrix = new ColorMatrix(); matrix.setSaturation(0); ColorMatrixCol.. 2020. 7. 12.
android.os.FileUriExposedException: file:///storage/emulated/0/... exposed beyond app through Intent.getData() 안드로이드 프로젝트의 targetSdkVersion이 24이상에서 아래의 소스코드(MIME Type에 따른 앱 연결 화면 오픈)를 실행하면 아래와 같이 오류가 발생합니다. [소스코드] String mergeFilePath = "file:///storage/emulated/0/sql.pdf"; File file = new File(mergeFilePath); Intent target = new Intent(Intent.ACTION_VIEW); target.setDataAndType(Uri.fromFile(file),"application/pdf"); target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); Intent intent = Intent.createChooser(t.. 2020. 2. 1.
Failed to resolve: support-core-utils & support-compat 요즘 이전에 개발한 안드로이드 프로젝트 컴파일 시 아래와 같은 오류가 발생합니다. ERROR: Failed to resolve: support-core-utils Affected Modules: app ERROR: Failed to resolve: support-compat Affected Modules: app 해결 방법은 App build.gradle의 dependencies에 support-core-utils와 support-compat을 추가해주면 됩니다. dependencies { ... implementation "com.android.support:support-core-utils:26.+" implementation 'com.android.support:support-compat:26.+'.. 2019. 7. 25.
안드로이드 targetSdkVersion 28 인 경우 HTTP 통신 시 오류 해결 방법 안드로이드 앱의 targetSdkVersion이 28 이상에서 HTTP 통신 할 경우 아래와 같은 오류가 발생합니다. E/AndroidRuntime: FATAL EXCEPTION: Thread-9 Process: com.mypackage, PID: 24239 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/HeaderGroup; at net.daum.mf.map.common.net.NetWebClient._getResponse(NetWebClient.java:257) at net.daum.mf.map.common.net.NetWebClient.openContentStream(NetWebClient.java:274.. 2019. 7. 14.
안드로이드X로 프로젝트 마이그레이션 하기 기존 안드로이드 프로젝트를 안드로이드X로 마이그레이션 하는 방법입니다. 즉 Android API 28 미만의 프로젝트를 마이그레이션 하는 것이죠. 올해 8월 쯤에 모든 안드로이드 앱은 안드로이드X로 플레이 스토어에 등록해야 하는 것으로 알고 있습니다. 1. 안드로이드 스튜디오를 최신 버전으로 업데이트 합니다. (최신버전에서는 안드로이드X로 마이그레이션을 할 수 있는 기능이 있습니다.) - 메뉴 Help > Check for update 를 클릭하여 안드로이드 스튜디오를 최신 버전으로 업데이트 합니다. 2. 안드로이드 스튜디어에서 메뉴 Refactor > Migrate to AndroidX... 를 클릭합니다. - 해당 프로젝트는 마이그레이션이 시작됩니다. 3. 아래와 같이 오류가 발생하면 Gradle을 .. 2019. 6. 23.
안드로이드 오류 - error: resource android:attr/fontVariationSettings & ttcIndex not found. 최근에 안드로이드 프로젝트 컴파일 시 오류가 발생했습니다. 구글링으로 이것 저것 같아 보았는데, compileSdkVersion 와 com.android.support:appcompat-v7을 28로 올리면 해결된다는 글이 많았습니다. 그래서 원인을 찾아보고 해결 방법을 찾았습니다. [오류] error: resource android:attr/fontVariationSettings not found. Message{kind=ERROR, text=error: resource android:attr/fontVariationSettings not found., sources=[C:\*****\*****\.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aa.. 2019. 6. 21.
플레이 스토어 앱 거부 : 부적절한 광고 정책 위반 앱을 플레이 콘솔에 등록하고, 아래와 같은 메일을 받았습니다.애드몹의 민감한 광고 차단을 하여 앱 거부를 피하기도 했었습니다.하지만 또 앱 거부를 당하고 말았습니다. [메일 내용] Google Play에 추억의 애니 : 애니메이션 링크 모음 (com.jmsys.oldani)을 (를) 제출해 주셔서 감사합니다.게시 상태: 거부됨검토 결과 귀하의 앱은 정책 위반으로 거부되어 게시되지 않았습니다. 기존 앱의 업데이트를 제출하신 것이라면 이전에 게시된 버전은 Google Play에서 계속 이용 가능합니다.문제: 부적절한 광고 정책 위반콘텐츠 자체가 Google 정책을 준수하더라도 앱 내에 표시되는 광고는 앱의 대상 연령층에 적합해야 합니다. 예를 들어, 청소년용 콘텐츠 등급을 받은 앱에는 성인용 콘텐츠나 서비스.. 2019. 3. 25.
안드로이드 스튜디오 - 오프라인 모드 활성화 오프라인 모드 활성화 네트워크 연결이 느린 경우, Gradle이 종속성 해결을 위해 네트워크 리소스를 사용하려고 시도하면 빌드 시간에 영향을 미칠 수도 있습니다. 이 경우 로컬로 캐싱한 아티팩트만을 사용하고 네트워크 리소스는 사용하지 않도록 Gradle에 알릴 수 있습니다.Android Studio에서 빌드할 때 Gradle을 오프라인으로 사용하려면 다음 단계를 진행하세요.File > Settings(Mac의 경우 Android Studio > Preferences)를 클릭하여 Preferences 창을 엽니다.왼쪽 창에서 Build, Execution, Deployment > Gradle을 클릭합니다.Offline work 체크박스를 선택합니다.Apply 또는 OK를 클릭합니다.참고 URL : http.. 2019. 3. 8.
안드로이드에 애드몹 최신 라이브러리 적용 시 오류 발생 대응법. 안드로이드에 애드몹 최신 라이브러리를 적용하고, Activity등에 배너를 적용 후 앱이 강제종료가 되는 현상이 발생했습니다. App의 build.gradle을 아래와 같이 최신 라이브러리로 적용하였습니다. [변경전] dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:26.1.0' compile 'com.google.android.gms:play-services-ads:9.2.0' compile(name:'AdfitSDK-3.0.1', ext:'aar') } [변경후] dependencies { compile fileTree(dir: 'libs', include: .. 2018. 11. 25.
안드로이드 TTS 실행 시 중간에 딜레이 주기 안드로이드에서 TTS로 여러 문장을 읽어 줄때 중간에 딜레이를 주고 싶을 때가 있습니다. 이런경우 TTS의 메소드 playSilence를 활용하면 됩니다. tts.speak("안녕하세요.", TextToSpeech.QUEUE_FLUSH, null) // 딜레이를 1초 주기 tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null); tts.speak("반갑습니다.", TextToSpeech.QUEUE_FLUSH, null) 2018. 7. 10.
안드로이드 - appcompat-v7:26.0.1에서 액션바(Actionbar) 이미지 깨지는 현상. 안드로이드 프로젝트에서 com.android.support:appcompat-v7:26.0.1 사용시 아래와 같이 이미지가 찌그러지는 현상이 발생한다.26.01.에 버그가 있다고 합니다. 이런 경우 com.android.support:appcompat-v7의 버전을 26.1.0으로 지정하면 정상적으로 표시됩니다. 2018. 7. 10.
영어 단어 퀴즈(English Word Quiz) 앱 화면정의서 영어 단어 퀴즈(English Word Quiz) 앱을 개발하기 전에 작성한 화면정의서입니다.발사믹 툴을 이용하여 화면정의서를 작성했는데, 파워포인트에서 작성하는 것보다 쉽고 빨리 작성 할 수 있었습니다. [영어 단어 퀴즈(English Word Quiz) 앱 링크]https://play.google.com/store/apps/details?id=com.jmsys.englishquiz [발사믹 화면 정의서 동영상]발사믹으로 각 화면정의서를 작성하고, 프리젠테이션 할 수 있는 기능이 있습니다.화면정의서의 버튼 & 이미지 등에 다른화면 링크를 구성 할 수 있어 프리젠테이션 시 화면 이동을 보여 줄 수 있습니다.아래의 동영상을 참고하세요. [개발된 앱 화면] 메인화면 퀴즈 화면 퀴즈화면의 단어 설명 퀴즈 결과.. 2018. 4. 24.
구글 플레이 콘솔 지원팀. 오늘 안드로이드 스튜디오에서 플레이 콘솔로 APK를 등록 할 수 있다는 주위 개발자의 말을 듣고, 구글 플레이 콘솔 도움말에서 검색하고 있었습니다. 그런데 오른쪽 하단에 도움이 필요하면 채팅으로 지원하게다는 메세지가 표시되더군요. 아래의 화면은 실제 제가 지원받은 화면입니다. 이런 서비스로 인해 정말 구글을 사랑하게 됩니다. ^^ 아래의 URL은 플레이 콘솔에 도움이 필요하면 채팅, 전화, 메일로 문의 할 수 있다고 합니다.URL : https://support.google.com/googleplay/android-developer/answer/7218994?hl=ko 2018. 4. 19.
안드로이드 API 레벨로 서로 다른 앱버전 관리하기. 안드로이드를 개발하다 보면, 하위 API와 상위 API로 두 앱을 관리 해야 하는 경우가 발생합니다. 즉 최신 기술을 사용하기 위해 상위 API를 사용해야하는데, 하위 API를 사용하고 있는 사용자도 계속 유지하려면 두개의 앱을 구글플레이 콘솔에서 관리 해야 합니다. 물론 소스도 두개로 관리가 되겠죠. 아래의 이미지는 구글플레이 콘솔에서 API 레벨로 두개의 앱이 등록된 화면입니다. 버전 201은 API 14~20인 안드로이드 폰에서 다운로드가 가능합니다. 번전 308은 API 21 이상인 안드로이드 폰에서 다운로드가 가능합니다. API레벨로 안드로이드 앱을 관리하기 위해서는 각각의 두 앱의 build.gradle에서 defaultConfig에 API를 설정하고 구글플레이 콘솔에서 두 앱(apk 파일)을.. 2018. 4. 10.
아이콘 모음 사이트 여러가지 아이콘이 모여있는 사이트입니다.안드로이드 앱 개발 시 활용하세요. https://github.com/oblador/react-native-vector-icons 2018. 3. 9.
웹에서 안드로이드 apk 디컴파일하기. 안드로이드 apk를 디컴파일 하려면 여러가지를 세팅해야합니다.하지만 웹에서 apk 파일을 업로드하여 디컴파일된 zip 파일을 받을 수 있습니다. 아래의 URL을 방문해보세요. http://www.javadecompilers.com/apk 2018. 2. 7.
안드로이드 오류 - 시스템 UI 앱을 중지하였습니다. 오늘 새로운 아이디어가 있어, 개발을 하고 디버깅을 진행하였습니다.대부분의 기능이 완료되어 앱의 아이콘을 배치하고, 앱의 아이콘도 적용하였습니다.그리고 안드로이드 스튜디오로 개발중인 앱을 설치하였는데 아래의 이미지와 같이 "시스템 UI 앱을 중지하였습니다."라는 메세지가 계속 표시되었습니다.해결 방법을 찾지 못해 폰을 공장초기화 했는데, 개발 중인 앱을 다시 설치하니 동일한 현상이 계속 발생했습니다.그래서 개발중이 앱을 이것 저것 찾아보이니... ㅠㅠ실수로 앱의 아이콘 이미지를 3000 X 3000(3Mb)으로 생성 사용 했기 때문이었습니다.정말 어이가 없는 실수를 하고 말았네요. 2017. 3. 26.
안드로이드 스튜디오 속도 개선을 위한 메모리 설정 안드로이드 스튜디오의 속도가 늦어져서, 이클립스의 메모리 설정으로 속도를 개선한 기억이 있어, 메모리(Heap Memory) 설정을 하였습니다.메모리 설정을 하니 안드로이드 스튜디오의 속도가 개선되었습니다.설정방법은 아래와 같습니다. 1. 안드로이드 스튜디오가 설치 된 폴더의 하위 폴더인 bin 폴더로 이동합니다. 2. bin 폴더에서 studio64.exe.vmoptions 파일을 메모장 등으로 파일을 엽니다. 3. 기본 메모리는 최소 256Mb, 최대 1280Mb로 되어있어 아래 같이 최소 1024Mb, 최대 2048Mb로 설정하였습니다. (1) 최소 메모리 : -Xms1024m (2) 최대 메모리 : -Xmx2048m 4. 안드로이드 스튜디오를 다시 실행하면 개선된 속도를 느낄 수 있습니다. 2017. 3. 16.
안드로이드 카드보드 VR 서적 2017년도 1월에 출간된 안드로이드 카드보드 VR 책입니다.짬짬히 공부는 하고 있었는데, 이 책으로 한번 개념을 잡고 다시 도전해야겠습니다. 안드로이드 카드보드 VR 프로젝트 : 구글 카드보드 SDK를 이용한 가상현실 앱 개발저자 : 조나단 리노위즈, 매트 쇤역자 : 이지훈출판사 : 에이콘출판사발행 : 2017년 01월 26일쪽수 : 484가격 : 3만원ISBN : 9788960779686 2017. 1. 25.