안드로이드

안드로이드 플랫폼 퍼미션(permission)

L OS부터 안드로이드 어플리케이션은 퍼미션을 protectionLevel에 따라 4가지로 구분하고 있다. 앱 개발자 입장에서는 얼마나 쉽게 권한을 얻을 수 있느냐가 중요한데, 이를 순서대로 정리하면 아래와 같다. normal : <use-permission/> 선언 후, 사용자 동의 없이 사용 가능 dangerous : <use-permission/> 선언 후, 사용자 동의 하에 사용 가능 signatureOrSystem : 아래 signature에 해당하거나, 단말 출시 시 미리 내장되어 […]

안드로이드 플랫폼 퍼미션(permission) 더 읽기"

java.lang.IllegalStateException: Failure saving state: … has target not in fragment manager: …

프레그먼트를 사용하다보면, 아래와 같은 에러를 만날 수 있다. Shutting down VM FATAL EXCEPTION: main Process: me.sunphiz.android.fragment, PID: 18882 java.lang.IllegalStateException: Failure saving state: CalleeFragment{68fee09 #7 CalleeFragment} has target not in fragment manager: CallerFragment{9c5480e} at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1843) at android.support.v4.app.FragmentController.saveAllState(FragmentController.java:134) at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:566) at android.support.v7.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:498) at android.app.Activity.performSaveInstanceState(Activity.java:1474) at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1317) at android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:5398) at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4700) at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4774) at android.app.ActivityThread.access$1400(ActivityThread.java:222) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1819) at

java.lang.IllegalStateException: Failure saving state: … has target not in fragment manager: … 더 읽기"

View의 android:elevation이 안될 때

그림자를 올바로 주었는지, 그림자가 표시될 수 있는지  확인하면 된다. android:elevation 값을 주자. 당연히, 그림자 효과를 위해 얼마나 높게 보일지 정해주어야 한다. android:background 를 지정하자. 배경색을 지정하지 않으면, 그림자가 생기지 않는다. ImageView와 같은 경우 이미지로 인해 background 색이 화면에 표시되지 않는다 하더라도 색을 지정하자. 참고로, 반투명은 가능하지만 투명도가 너무 높으면 그림자가 안보인다. 그림자가 필요한 뷰와 부모

View의 android:elevation이 안될 때 더 읽기"

알듯 말듯한 안드로이드의 컴포넌트들

컴포넌트(Component) 액티비티, 서비스, 브로드캐스트 리시버, 컨텐츠 프로바이더를 안드로이드 4대 컴포넌트라 합니다. 4대 컴포넌트 중 컨텐츠 프로바이더는 인텐트로 실행하지 않습니다. 4대 컴포넌트 중 브로드캐스트 리시버는 AndroidManifest.xml에 등록하지 않고도 사용할 수 있으며, 이를 동적 브로드캐스트 리시버라 부릅니다. 동적 브로드캐스트 리시버는 선택이 아닌 필수로, 동적 브로드캐스트 리시버를 통해서만 수신할 수 있는 브로드캐스트가 있습니다. 4대 컴포넌트 중 가장 많이

알듯 말듯한 안드로이드의 컴포넌트들 더 읽기"

PathInterpolator를 xml로 사용하기

먼저, PathInterpolator는 커브 모션(Curved Motion)이라는 제목으로 안드로이드 개발자 사이트에 이미 소개가 되어 있다. 커브 모션이라는 말이 생소하다면 여기를 보면 이해에 도움이 될 것이다. API 21(안드로이드 5.0)부터 추가된 매터리얼 디자인과 함께 추가된 Interpolator(한국어로 보간기)이다. 사용 방법은 간단하다. 다른 Interpolator 처럼 xml 레이아웃으로 선언하거나 코드로 적용할 수 있다. 예를 들면, 다음과 같다. <pathInterpolator xmlns:android=”http://schemas.android.com/apk/res/android” android:controlX1=”0.4″ android:controlY1=”0″ android:controlX2=”1″

PathInterpolator를 xml로 사용하기 더 읽기"