본문 바로가기

[Android]/허접 Programming Tips

(15)
안드로이드 Kotlin으로 Custom Loading Dialog(커스텀 로딩 다이얼로그) 구현하기 안녕하세요! 허접샴푸입니다. 정말 오랜만에 돌아왔습니다 ㅜㅜ 앞으로 Kotlin으로 많은 Tip을 제공해드리도록 하겠습니다. 먼저 Kotlin으로 Custom Dialog 을 구현하는 방법을 알려드리겠습니다. 많은 프로젝트에서 사용하시기 바랍니다~! [1] LoadingDialog.kt 을 생성한다 별 특별한 내용이 없습니다. LoadingDialog class는 Dialog를 상속받기 때문에 Context 를 필요로 합니다. 그래서 constructor에 Context를 인자로 받으며, 받은 인자를 Dialog(contenxt) 와 같이 넘겨줍니다. init {} 을 통해 초기화를 시켜주는 데, setCanceledOnTouchOutside(false) 를 작성하여, 다이얼로그 외부 화면을 터치할 때 ..
Google Map 구글 지도 getFragmentManager() Deprecated 해결방법 지금 Google Map을 적용하다가 알게 된 사실인데, 저는 귀찮아서 사실 오래전에 작업한 프로젝트에서Google Map(구글 지도) 적용 부분이 있어서 현재 프로젝트에 고대로 코드를 복사 붙여넣기로 작업을 하였습니다. 예전 프로젝트에서는 Google Map을 적용하는 데 있어 아래와 같이 프로그래밍을 했습니다. MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.google_map); mapFragment.getMapAsync(this); 그런데! getFragmentManager() 요놈이 Deprecated 되었다고 뜨네요?? 그래서 Google Map(구글 지도) 적용하는 방법을 찾기 위해Google..
안드로이드 Animation으로 Custom Loading(커스텀 로딩) 구현하기(2/2) 자 오늘은 2탄입니다~! CustomDialog를 상속받아서 이제는 화면에 로딩 되듯이 자연스럽게 띄워줘야 합니다. 그럼 제 글보다는 코드에, 작동 결과 화면에 관심이 많으실 테니 바로 시작해보도록 하겠습니다. 1) CustomAnimationDialog.java 파일을 만들고 아래와 같이 코드를 작성합니다. CustomAnimationDialog.java public class CustomAnimationDialog extends ProgressDialog { private Context c; private ImageView imgLogo; public CustomAnimationDialog(Context context) { super(context); requestWindowFeature(Window..
안드로이드 Animation으로 Custom Loading(커스텀 로딩) 구현하기(1/2) "안녕하세요~! 오랜만에 다시 블로그를 시작하게 되었습니다. 이번에는 안드로이드 애니메이션을 이용하여 커스텀 로딩 화면을 구현하려고 합니다. 예를 들면 아래와 같이 "배X의 민족" 앱 같은 경우 로딩 시 오토바이 맨이 나옵니다. (출저 : https://m.blog.naver.com/PostView.nhn?blogId=marie0831&logNo=220181991052&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F) 그럼 본론으로 돌아가서, Animation부터 차근차근 시작해 보죠. 커스텀 로딩 애니메이션은 사용자에게 시각적인 즐거움(?)을 주는 것으로 사용하면 매우 좋을(?) 것 같습니다. 단순히 Android에서 제공하는 Progress Bar을 사용하기에는 너..
[간편 로그인] (카카오, 네이버, 페이스북 등) 커스텀 이미지 사용하는 방법 안녕하세요~! 오늘은 간단한 방법으로 간편 로그인 버튼 이미지를 바꿔 보겠습니다. 기존 카카오톡, 네이버, 페이스북 Api를 활용하여 간편 로그인을 구현하였더만 아래와 같은 결과 화면을 얻을 수 있었습니다. [그림 - 처음 간편 로그인 적용한 화면] 그러나 위 화면으로 앱을 서비스한다면 상당히 일관성도 없고 사용자로 하여금 별로인 디자인이라고 생각하게 만들겠죠? 그래서 아래와 같이 바꿔버렸습니다. 동작은 똑같이 잘 되구요~! [그림 - 내 이미지로 바꿔버린 화면] 그럼 어떻게 그림을 바꾸었는데 동작이 똑같이 되는지 알아보도록 하겠습니다. 힌트는 바로 요놈입니다. performClick() 함수입니다. PerformClick()란? Call this view's OnClickListener, if it i..
Android 7.0 Nougat OS 이미지 사진 촬영 캡처 및 자르기 (2/2) 어이없는 Android 7.0 NOS 사진 촬영, 캡처 및 자르기. 아래 포스트에서 Uri 관련하여 보안이 강화되어 기존 인터넷에 떠도는 코드를 사용하여 해당 기능을 구현하기는 무리가 있습니다. 저와 같은 뻘(?)짓 혹은 어려움을 겪는 분들을 위해 코드를 공유해드립니다. 제가 실력이 부족하여 하루에 한 ~ 두시간씩 투자해서 약 2주간 고생해서 완성한 코드를 공유드리도록 합니다. 진심 이방법, 저방법을 이용하며 알아낸 방법입니다. 저도 사실 이 코드가 왜 완벽히 되는지는 더 공부해야 될 것 같네요ㅜ. 1) onActivityResult를 위해 사용할 변수 선언 private static final int PICK_FROM_CAMERA = 1; //카메라 촬영으로 사진 가져오기 private static f..
Android 7.0 Nougat OS 이미지 사진 촬영 캡처 및 자르기(1/2) 1. 중요한 것이 Android 7.0이 되면서 기존 사용하던 이미지 캡처, 사진 촬영 후 자르는 기능이 작동되지 않는다. 그 이유로는 구글 공식 사이트에도 기재되어 있지만 아래와 같다. 앱 사이의 파일 공유Android 7.0을 대상으로 하는 앱의 경우, Android 프레임워크는 앱 외부에서 file:// URI의 노출을 금지하는 StrictMode API 정책을 적용합니다. 파일 URI를 포함하는 인텐트가 앱을 떠나면 FileUriExposedException 예외와 함께 앱에 오류가 발생합니다. 애플리케이션 간에 파일을 공유하려면 content:// URI를 보내고 이 URI에 대해 임시 액세스 권한을 부여해야 합니다. 이 권한을 가장 쉽게 부여하는 방법은 FileProvider 클래스를 사용하는..