안드로이드 38

Custom Circular Progressbar

이제까지 거의 Progressbar 를 기본 혹은 라이브러리를 통해서 사용 및 수정을 해서 사용했었다. 다른 라이브러리를 수정해서만 사용하다보니깐, 기본적으로라도 Progressbar 를 직접 만들어보고 싶어서 만들었다. 아주 간단하게 Circular ProgressBar 를 만들었다. 간단한 프로그레스바라도 처음으로 직접 만들다보니 시간이 꽤 걸렸다. Github 주소 : CircularProgressBar

Dev/Android 2018.08.12

Android Flash(light) 기능 사용

Android Flash(light) 사용하기!! Photo by Ezekiel Elin on Unsplash 1. 사용권한 때문에 Manifest.xml 에 추가 2. Flash 기능을 지원하는지 체크 if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {// .. 플래시 켜기}else {// .. 플래쉬 지원하지 않음.} 3. Flash On(), Off() 구현 -- SDK Level 23 이상Camera camera = Camera.open();Camera.Parameters parameters = camera.getParameters(); // onparameters.setFlashMode(Camera.Pa..

Dev/Android 2018.07.30

유지보수라는게 생각 이상으로 쉽지 않다.

Photo by Guilherme Cunha on Unsplash 안드로이드 앱 개발자입니다. 현재 주요 역할은 회사의 안드로이드 서비스 유지보수 및 기존 앱을 만들때 만들어 놓은 기능을 바탕으로 만들어진 SDK 를 토대로 다른 비즈니스 측면으로 접근할 앱들을 몇가지 만들었으며 더 만들고 있다. 그리고 만들어진 SDK를 토대로 만들어진 서비스들(여기서 새롭게 만든 앱)의 버그를 수정하는데 정말 쉽지 않다는걸 느낀다. 현재의 업무는 유지보수라는 측면이 조금 더 큰것 같다. 새로운 서비스도 이미 만들어진 SDK 를 사용해서 비슷한 기능이 담긴 앱들이다. 유지보수를 하다보면 현재 특정 단말기에서 테스트하다가 발생한 버그도 있지만, 디바이스의 상황이 달라질때마다 늘어나는 버그들도 있다. 그리고 안드로이드 툴, ..

Log 2018.07.20

소프트 네비게이션 탐지 - Detect NavigationBar

Detect Soft NavigationBar 가장 하단에 있는 부분이 '소프트 네비게이션바' 입니다.저는 해당 화면의 View 를 저장하기 위해서 screenshot 기능을 구현하는데 소프트 네비게이션도 같이 저장되어서 네비게이션을 제거하기 위해서 방법을 찾아보았습니다. 1. 네비게이션바 있는지 체크public boolean isNavigationBar() { int id = getResources().getIdentifier("config_showNavigationBar", "bool", "android"); return id > 0 && getResources().getBoolean(id); }참고 : https://stackoverflow.com/a/32698387/3897810 2. 네비게이션바..

Dev/Android 2018.05.29

안드로이드 화면 해상도 구하기

Android 디바이스 화면 해상도 구하는 방법 아래는 기본적으로 Activity 에서 해당 화면의 해상도를 구하는 방법입니다.Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); Log.d(TAG, ">>> size.x : " + size.x + ", size.y : " + size.y);Fragment 라면 getActivity() or Context 를 가져와서 getActivity().getWindowManager().getDefaultDisplay(); 로 구하면 됩니다. 디바이스 소프트키(Navigation Bar) 높이 구하는 방법int resourceId..

Dev/Android 2018.05.24

커스텀뷰 CustomView 기초

안드로이드 기본 API에서 제공하는 라이브러리의 뷰와는 완전히 다른 뷰를 만들때는 모든 뷰의 최상위 클래스인 View를 상속받아 작성해야 한다. 주의사항- 레이아웃 XML 파일에 등록하여 다른 뷰와 함께 화면을 구성할 경우 생성자를 하나만 정의하면 실행시 에러가 발생.- 레이아웃 XML에 등록해서 이용하려면 생성자 3개를 모두 정의해야 한다. public class MyView extends View {Context context;public MyView(Context context) {super(context);}public MyView(Context context, AttributeSet attrs) {super(context, attrs);}public MyView(Context context, A..

Dev/Android 2018.03.21

이 앱은 기기에 최적화되어 있지 않을 수도 있습니다.

이 앱은 기기에 최적화되어 있지 않을 수도 있습니다 안드로이드 태블릿 최적화 방법 ** 해당 글은 개발자적 관점에서 올린 해결 방법입니다 기기 최적화에 대한 해결 방법 2가지1. APK가 일반적인 태블릿 화면 밀도에 최적화된 맞춤 드로어블 애셋이 있어야 한다.https://developer.android.com/develop/quality-guidelines/tablet-app-quality.html#use-tablet-icons 2. 태블릿 스크린샷이 업로드 되어야 한다.

Dev/Android 2018.03.12