하루에 0.01%라도 성장하자
반응형

Develop 130

Android - Glide Radius (feat. ImageView radius error! )

ImageView를 사용하는 많은 프로그래머들이 디자이너의 요청으로, 혹은 개인의 취향으로 이미지에 radius 처리를 많이 한다. 그 대표적인 예가 SNS에 노출되는 프로필 이미지 라던가, RecyclerView 에 노출되는 List 형태의 itemView에 ImageView가 있다면 radius 처리를 해주는 것이 보기 좋다는게 이유이다. 위 이미지처럼 모서리 부분에 radius 처리를 하는 경우도 있고 아예 Circle 형태의 이미지를 만들기도 한다. Google 검색을 하면 대부분 아래와 같은 솔루션을 준다. //1. radius xml파일을 만든다. //2.ImageView에 적용해준다. GradientDrawable drawable= (GradientDrawable) context.getDra..

Develop/Android 2019.12.23

Android - line Height 계산법 ( lineSpacingExtra, lineSpacingMultiplier

이번에 앱개발을 하면서 제공받은 zeplin에 lineHeight 값을 넣어야 하는 상황이었다. 음..안드로이드의 경우 lineHeight라는 옵션은 API 레벨 28 이상에서만 사용할 수 있는 옵션인데, 아직은 API 27 이하의 앱이 많기 때문에 lineHeight 보다는 lineSpacingExtra나 lineSpacingMultiplier 옵션을 사용한다. 그런데 문제는! 이 옵션이 zeplin에서 보여주는 lineHeight 수치를 그대로 넣으면 안된다는 것이다.! ( 나도 이번에 알았다 .. ) 역시나 구글링을 통해서 알게됬고 해당 방식대로 적용해본 결과 zeplin에서 보여주는 UI를 만들 수 있었다. 즉 lineHeight 값이 19이고 textSize가 15이면 우리가 설정해주어야 하는 ..

Develop/Android 2019.12.20

Android Glide Error - java.lang.IllegalStateException: GeneratedAppGlideModuleImpl is implemented incorrectly. If you've manually implemented this class, remove your implementation. The Annotation processor will generate a correct implementation.

Glide를 사용하면서 발생한 Error를 공유한다. 내가 사용하던 Glide는 버전이 낮아서 발생한 사례로 아래와 같은 방법으로 해결하였다. proguard 부분이 조금 생소했는데, 큰 어려움 없이 설정하였다. [ 관련 사이트 ] https://gitmemory.com/issue/bumptech/glide/2821/538942931 GeneratedAppGlideModuleImpl is implemented incorrectly Ask questionsGeneratedAppGlideModuleImpl is implemented incorrectly When I added proguard-rules to my project I faced this exception : java.lang.IllegalSta..

Develop/Android 2019.12.20

Android font 적용, 변경하기!

나는 디자인적인 감각이 많이 없는것 같다... 후.. 어플을 만들거나 영상을 만들 때 가장 신경쓰이는 것이 글씨체. 신경은 쓰이지만 잘 못함.. 최근 만들어 놨던 개인 앱의 폰트를 변경하면서 간단하지만 글을 남긴다. 글씨체 선택 내가 선택한 폰트는 '티몬 몬소리체'. 약간 고딕체? 느낌 나는 글씨체를 원했는데, bold처리를 하지 않아도 충분히 굵은 글씨체이며 끝이 둥그스름한게 딱 내스타일.. 한동안 이거 쓸거 같음.. 관련 링크는 아래에 남긴다. https://brunch.co.kr/@creative/32 티몬 글꼴 무료 배포 티몬 전용 글꼴 2종을 무료로 다운받아 보세요. (딩벳버전 업데이트) | 1. 티몬이 드리는 첫 번째 선물 : 티몬 몬소리체 티몬 몬소리체는 우리가 잊고지낸 몬스터 세계의 언어 ..

Develop/Android 2019.12.03

Stack , Queue, Heap 의 구조와 메모리 영역에 대한 이해

최근들어 프로그래밍에 알고리즘과 자료구조의 중요성을 느낀다. 확실히 한단계 더 높은 개발자가 되려면 기초가 중요하고 알고리즘과 자료구조의 중요성이 더욱 강해지는 것 같다.. 주변 개발자를 보면, 자료구조 같은 기초적인 것들을 잘 알고 있는 개발자는 업무상 사용하던 언어와 다른 언어를 사용할 때 퍼먼스가 다르다. 그런의미에서 오늘은 조금은 기초적인 이야기를 해볼 예정이다. Stack Stack은 LIFO( Last In First Out ) 구조다. 제일 처음에 들어간 데이터는 제일 마지막에 나온다. Queue Queue는 FIFO( First In First Out) 구조다. 데이터가 들어간 순서데로 나간다. Heap Heap은 완전이진트리 형식으로 되어 있다. 위에서 아래로 왼쪽에서 오른쪽으로 데이터가..

Develop/Android 2019.11.29

Fragment 변경시 발생할 수 있는 에러. Error msg : java.lang.IllegalStateException: commit already called

이번에 업데이트 중인 앱의 UI를 변경하다가 BottomNavigationView를 사용할 일이 생겼다. BottomNavigationView를 사용하면 하단에 Tab이 있고, MainView에 Fragment가 들어가는데 Tab의 메뉴를 누르면 화면이 변경되어야 한다. 위에 이해를 돕기위해 내가 개발한 앱의 레이아웃 구조를 구현했다. FrameLayout 위에 BottomNavigationView , FrameLayout을 그리고 FrameLayout 위에 Fragment를 배치하도록 하였다. ( 기본적인 NavigationView 그리기다.. ) Menu1, Menu2, Menu3을 누르면 각각의 Fragment를 그려주는 기능이다. 잠깐 코드를 보자. bottomNavigationView.setOn..

Develop/Android 2019.11.21

Android 세로, 가로 고정하는 방법 , screenOrientation

안드로이드 앱 개발을 하면서 센서를 이용해 가로, 세로 화면을 보여주는 경우도 있고 가로, 세로로 고정하는 경우가 있다. protrait, landscape 안드로이드에서 세로뷰, 가로뷰가 존재하는데 각각 protrait, landscape로 칭한다. AndroidManifest.xml에서 설정하는 방법 이를 screenOrientation이라는 설정값으로 정의하여 제어하는데 방법은 아래와 같다. AndroidManifest.xml 이렇게 AndroidManifest.xml에서 설정하여 사용할 수 있다. portrait 값을 설정하면 세로, landscape로 설정하면 가로로 시작하고 센서로 인한 변경으로도 제어되지 않는다. JAVA 코드로 설정하는 방법 Manifest.xml에서 설정하면 아쉽게도 이벤..

Develop/Android 2019.11.19

안드로이드 http 통신 이슈 - Error : java.net.ConnectException: Failed to connect to

안드로이드 네트워크 통신을 할 때 기본적으로 매니페스트(manifest) 퍼미션(permission)을 설정해 준다. AndroidManifest.xml 이후에 http에 보안이슈가 확인되면서 https가 아닌 프로토콜에 대하여 기본적으로 동작하지 못하게 되었다. 이것은 설정을 통해 해결이 가능한데 아래 설정을 공유 하려고 한다. 설정 하는 방법 http를 가능하도록 설정하는 방법은 여러가지 방법이 있고, 이를 모두 공유하려고 한다. 1. usesCleartextTraffic="true"

Develop/Android 2019.11.14

최상단 레이아웃에서 발생하는 이벤트를 하위 레이아웃으로 전달 하는 것 막기!

제목 정하기 정말 힘드네..이번건..;; 개발을 하다 보면 이렇게 최상단에 Fragment를 띄워야 하는 상황이 발생한다. 제일 쉬운방법은 역시 Dialog를 만들어 띄우는 것이지만...( 지금 생각해보면 걍 Dialog로 띄울껄.. ) 나는 Fragment로 구현하였다. 동작은 '확인' 버튼을 클릭하면 그냥 저 Fragment가 없어지면 되는 아주 간단한 구조. 저 영역은 조금 더 디테일하게 표현하면 아래 그림과 같다 B라는 Activity위에 A라는 Fragment가 있는 건데, 배경이 검은색이어서 그렇지.. 지금 저 공지사항 Fragment는 전체 화면을 차지하고 있다. 공지사항 뒤에는 B Activity에 구현된 Button이 있는데 Fragment의 하얀 부분을 클릭해도 B Activity의 B..

Develop/Android 2019.11.13

androidx 호환 이슈 - Error msg : Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0]

기존에 구글플레이에 배포한 개인 앱에 material-design을 적용하려고 했다. 별 문제 없을 것이라고 생각했는데 아래와 같은 에러메세지가 괴롭혔다.. Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponent..

Develop/Android 2019.11.13
반응형