Android 106

커스텀뷰 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

부모 레이아웃과 자식 레이아웃의 클릭 리스너 트리거 - DuplicateParentState

부모 레이아웃과 자식 레이아웃에 동일한 클릭 리스너 적용하기 하위 레이아웃의 클릭 반응이 상위 레이아웃에 동일하게 클릭 리스너가 적용하기 위해서 DuplicateParentState 속성을 추가해 줘야한다.android:duplicateParentState="true"참고 : https://stackoverflow.com/a/8050279/3897810 구현에 따른 생각 과정 :나의 경우, 위와 같은 버튼을 만들었다. 중간의 사진을 제외하고는 레이아웃으로 쪼개서 구현하였기 때문에 레이아웃이 파편화 되어있다.그런데 저 버튼 전체가 클릭 리스너 반응이 적용되야 했다. 그런데 레이아웃이 파편화 되어있기에 하나씩 id 를 부여하고 리스너를 줘야하는가 라는 생각을 했고, 아니다라는 생각으로 해당 레이아웃을 구현한..

Dev/Android 2018.03.13

MediaProjection 는 null 검사가 필요하다.

MediProjection Null Check after take a Permission Dialog Event MediaProjection 사용법은 *참고 -> http://thdev.tech/androiddev/2016/04/09/Android-MediaProjection-Exmple.html확인이 가능하다. 여기서 나는 사용자에게 권한 획득 여부를 묻는 다음 단계에서 "취소" 를 눌렀을때 발생한 에러에 대한 내용을 기록한다. mediaProjection = projectionManager.getMediaProjection(resultCode, data);if (mediaProjection != null) { mediaProjection.registerCallback(new MediaProjectio..

Dev/Error 2018.03.08

원하는 View 스크린샷 뜨기 - Take a ScreenShot

전체 스크린샷이 아닌 원하는 영역만 스크린샷을 찍기를 원했다.내가 원하는 영역은 ImageView 이다. 그렇기에 해당 view 만 가져와서 스크린샷을 진행한다. View v = getWindow().getDecorView().findViewById(R.id.viewID);v.setDrawingCacheEnabled(true);Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache()); 위와 같이 원하는 영역의 view 를 가져와서 Bitmap 으로 만들어서 저장을 한다. 찰칵 참고 : https://stackoverflow.com/a/30212385/3897810

Dev/Android 2018.02.12

Android Error - Caused by: android.view.InflateException: Binary XML file line #0:

Android XML 관련 에러 Caused by: android.view.InflateException: Binary XML file line #0: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object referenceCaused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference XML 에서 구현해야 하는데 라고 소문자로 적어서 발생했다. 참고 : https://..

Dev/Error 2018.02.07

Android 날짜 및 시간 자동 설정 체크 - Automatic date and time check

날짜 및 시간 자동 설정 체크 public static boolean isTimeAutomatic(Context c) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { return Settings.Global.getInt(c.getContentResolver(), Settings.Global.AUTO_TIME, 0) == 1; } else { return android.provider.Settings.System.getInt(c.getContentResolver(), android.provider.Settings.System.AUTO_TIME, 0) == 1; }} 젤리빈 이전에는 Settings 의 System 클래스에서 세팅값 ..

Dev/Android 2018.01.17