모바일/Android_Java(100)
-
WindowManager.LayoutParams()
WindowManager를 사용하면, Activity의 제약사항을 뛰어넘어서 개발할 수 있다. Context별 사용법을 정확히 알아야한다. 메모리 관리를 잘 해야 한다. 잠금 해제는 Activity Context 만 가능하다. 팝업창 구현이 쉽지 않다. 최상위 팝업 구현을 하려고 하는데 전화가 걸려오면 최상위로 팝업되는 경우도 있고 뒤로 숨는 경우도 있다. 그래서 블로드, 사이트 등에서 기능을 찾아 정리해보고 있지만, 완벽한 해결이 되지 못했다. (https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html) FLAG_DISMISS_KEYGUARD window가 attach되면 잠금해제를 하는 flag. Activ..
2019.11.11 -
adapter에서 activity에 접근하기
RecyclerView Adapter 를 별도 Adapter 파일로 만들어서 Activity 간 데이터 처리를 해보고 기록해둔다. 그동안 Inner Class 로 하나의 Activity 내에서 처리하는 것만 해봤는데 Activity간 처리하는 것이라 고려할 사항이 좀 된다. RecyclerView 는 android.support.v7.widget.CardView 와 같이 사용하면 깔끔한 화면을 볼 수 있다. 또한, view 를 두개 이상 선택적으로 보여주는 것도 편하더라. Intent 로 화면 전환 처리하는 걸 ContentAdapter 에서 처리하는 걸 문제없이 처리하기 위해 구글링으로 여러 자료를 참조하고 완성된 결과를 얻었다. 두 파일간에 Interface 를 통해 처리를 한다. OnItemClic..
2019.11.08 -
Static
Static 클래스 : static영역 모든 객체가 공유하는 메모리 자주 사용하면 퍼포먼스에 악영향 new연산 : 힙영역 가비지 컬렉터가 관리 Static 변수 메모리에 고정적으로 할당, 프로그램 종료시 해제 클래스에 태그명을 줄때 사용한다. static으로 사용하지 않으면 객체 생성시마다 태그명이 중복해서 생성되게됨 Static메소드 객체에서 호출 불가능 유틸리티 관련 함수에 사용 메소드 안에서 static 선언되지 않은 변수에 접근 불가능 static메소드는 객체 생성 없이 접근하는 함수이므로 할당되지 않은 메모리 영역에 접근 불가능
2019.10.30 -
테마관련
- 어떠한 원리로 인해 xml에서 text=""하면 테마적용이 안되고 자바코드로 setText("")하면 테마적용이 된다.
2019.10.28 -
View관련
onInterceptTouchEvent 특정 이벤트를 특정 뷰에서 처리완료 후, 더이상 상위 뷰에게 이벤트가 처리되지 않게 하고싶을 때 true로 설정한다. 뷰 터치시 상위 뷰부터 하위뷰로 터치 전달 뷰페이저안에 리사이클러뷰가 있는경우 Drag시 true로 이벤트 전달하고 아닐경유 하위뷰(리사이클러뷰)에게 false로 이벤트 전달하여 아이템선택되게 만듦 @Override public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = ev.getAction() & MotionEventCompat.ACTION_MASK; switch (action){ case MotionEvent.ACTION_DOWN: preX = ev.getX(); br..
2019.10.25 -
가로,세로화면(Configuration.ORIENTATION_PORTRAIT)
getScaledTouchSlop() 예를 들면, 갑자기 화면에 touch 를 하게 되면 사람인지라 손이 살짝 미끄러질 수 있다.(아주 미세하게라도.) 그러면 그것을 drag 로 인식해서 scroll 을 할 수도 있고, 아 이정도 drag 는 drag 가 아니라 그냥 살짝 미끄러진 정도구나 라고 판단할 수도 있다. 그 기준이 바로 touchslop 이라고 이해하면 될 듯 하다. touchSlop = configuration.getScaledTouchSlop() if(x2>touchSlop || y2>touchSlop){ intercept = true; } break; ORIENTATION_PORTRAIT 사용예제 int currentOrientation = this.mContext.getResources..
2019.10.24