본문 바로가기

Tech develop/Android

(32)
[Android] 캘린더 속성정리 // // 기본적으로 현재날짜와 시간으로 설정된다.// Calendar today = Calendar.getInstance(); // System.out.println("이 해의 년도 : " + today.get(Calendar.YEAR));// System.out.println("월(0~11, 0:1월): " + today.get(Calendar.MONTH));// // (today.get(Calendar.MONTH) + 1)) 이런 형식으로 하면 다음월을 받아 올 수 // // 있다. today.get(Calendar.MONTH) + 1로 하면 이상한 값이 나온다. (괄호유무)// System.out.println("월(0~11, 0:1월): " + (today.get(Calendar.MONTH) +..
[Android] ScrollView 자동 스크롤 애니메이션 이번 포스트에서는 스크롤뷰(ScrollView)의 자동 스크롤 방법에 대해 알아 보도록 하겠습니다. 맨 위 / 아래로 ScrollView 자동 스크롤ScrollView 의 맨 위/아래로 자동 스크롤 하는 방법은 fullScroll을 사용하는 방법입니다.인자값으로는 ScrollView.FOCUS_DOWN 과 ScrollView.FOCUS_UP 이 있습니다.final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview)); scrollview.post(new Runnable() { @Override public void run() { scrollview.fullScroll(ScrollView.FOCUS_DOWN); } }); ScrollVi..
[Android] FragmentTransaction add(), replace() 및 addToBackStack()의 차이점 add 와 replace 중요성의 차이점은 replace 가 기존의 조각을 제거하고 새로운 조각을 추가하는 것입니다. 즉, 다시 버튼을 누르면 대체 된 프래그먼트가 호출되고 onCreateView가 호출됩니다. add 는 기존의 조각을 유지하고 기존의 조각이 활성화 될 것이라는 의미의 새 조각을 추가하는 반면 '뒤로'단추를 누르면 onCreateView가 기존 조각 (새 조각 전에 있던 단편 조각이 추가됨). 프래그먼트의 라이프 사이클 이벤트 onPause와 관련하여, onResume, onCreateView 및 기타 라이프 사이클 이벤트는 replace 될 경우 호출되지만 add 경우에는 호출되지 않습니다. add() 와 replace() 기본적인 차이점은 다음과 같이 설명 할 수 있습니다.add() ..
[Android] Fragment 의 life cycle Fragment 의 life cycle fragment activity 를 만들기 시작fragment inflate 하고fragment 를 activity 에 attach 하고fragment 를 만들기 시작fragment 가 가지고 있는 view 를 만들기 시작view state 복원 ---- activity 가 create 하기 시작하면서(Activity.onCreate())activity 안의 fragment 를 inflate 한다.(Fragment.onInflate())이 inflate 한 녀석이 activity 에 붙여지고 나서,(Fragment.onAttach())부모가 없는 Fragment(최상위 fragment ?) 가 Activity 에 attach 됐다고 알린다.(Activity.onAt..
[Android]제네릭을 이용한 class작성 시 타입 알아내기 public abstract class AbsFragmentNew extends Fragment이런 class를 만들 때 "T"의 데이터 타입을 알아내기 위한 방법Type superclass = getClass().getGenericSuperclass(); if(superclass instanceof ParameterizedType) { Type[] genericTypes = ((ParameterizedType) superclass).getActualTypeArguments(); if (genericTypes.length > 0) { try { Type genericType = genericTypes[0]; String className = genericType.toString().split(" ")[1..
[android/안드로이드]메모리 로그 메세지 GC는 Garbage Collector의 약자입니다 dalvikvm Tag 로 GC_CONCURRENT freed 11405k, 59% free 3107K/7431K, external 3299k/4120k, puased 4ms+3ms 라는 log가 찍힙니다. 다음과 같은 format으로 로그가 찍힙니다. [Reason] [Amount Freed], [Heap Statistics], [External Memory Statistics], [Pause Time] [Reason] : GC 발동의 원인을 나타냅니다. 1. GC_FOR_MALLOC : 객체 생성의 있어서 힘에 메모리를 할달 받아야 할 때 힙에 남아있는 사용가능한 메모리 공간이 충분치 않을때.2. GC_EXPLICIT : GC가 명시적으로 불렸을 때..
[Android/안드로이드]Activity Shared Elements Transitions(액티비티 이동 애니메이션) Activity Shared Elements TransitionsNote that the shared element transitions require Android 5.0 (API level 21) and above and will be ignored for any lower API versions. Be sure to check the version at runtime before using API 21 specific features.1. Enable Window Content TransitionsEnable Window Content Transitions in your styles.xml file: true ... 2. Assign a Common Transition NameAssign a com..
[android]device model info. 기기 모델 정보 가져오기 Log.i(TAG, "BOARD = " + Build.BOARD);Log.i(TAG, "BRAND = " + Build.BRAND);Log.i(TAG, "CPU_ABI = " + Build.CPU_ABI);Log.i(TAG, "DEVICE = " + Build.DEVICE);Log.i(TAG, "DISPLAY = " + Build.DISPLAY);Log.i(TAG, "FINGERPRINT = " + Build.FINGERPRINT);Log.i(TAG, "HOST = " + Build.HOST);Log.i(TAG, "ID = " + Build.ID);Log.i(TAG, "MANUFACTURER = " + Build.MANUFACTURER);Log.i(TAG, "MODEL = " + Build.MODEL);..