본문 바로가기
[android] CircularRevealEffect Basic Simple Example [android] Circular Reveal Effect Basic Simple Example - API Level 21 에 등장! ( 5.0, MOS ) - Animator animator = ViewAnimationUtils.createCircularReveal( shape, // animation target view shape.getWidth(), // circle center x 0, // circle center y 0, // circle start radius (float) Math.hypot(shape.getWidth(), shape.getHeight())); // circle end radiusanimator.setInterpolator(new AccelerateDecelerateInt.. 2017. 5. 24.
[Android] java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. [Android] java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. android 2.3 에서는 setAdapter 가 수행된 이후에 addHeaderView 가 수행되면 아래와 같은 exception 을 내뱉는다. java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 해결책은 setAdapter( null ); 을 해주고, addHeaderView 를 호출한 다음 다시 본래의 adpater 를 set 해주던가, 아니면 headerview 를 .. 2017. 5. 17.
[Java Concurrency] 자바 메모리 모델 [Java Concurrency] 자바 메모리 모델 - 자바 메모리 모델(JMM, Java Memory Model) 의 내부 구조가 어떻게 동작하는지를 이해하고 있다면 상위 개념을 훨씬 효율적으로 쉽게 사용할 수 있을 것이다. 16.1. 자바 메모리 모델은 무엇이며, 왜 사용해야 하는가? - 특정 스레드에서 aVariable 이라는 변수에 값을 할당한다고 해보자. aVariable = 3; 자바 메모리 모델은 "스레드가 aVariable에 할당된 3이란 값을 사용할 수 있으려면 어떤 조건이 돼야 하는가?" 에 대한 답을 알고 있다. 동기화 기법을 사용하지 않는 상태라면 특정 스레드가 값이 할당되는 즉시, 심지어는 영원히 3이라는 값을 읽어가지 못하게 하는 여러 가지 상황이 발생할 수 있다. - JMM 은.. 2017. 5. 10.
[android] ViewAnimator 뭐하는 녀석이야? [android] ViewAnimator 뭐하는 녀석이야? - ViewAnimator 는 FrameLayout 을 상속한 녀석으로 view 간의 switching 이 있을 때 animation 을 하는 녀석. -ViewAnimator 안에 view 들을 넣고, viewAnimator.showPrevious() 나 viewAnimator.showNext() 를 호출하면, child view 들이 순차적으로 animation 하며 나타났다 사라졌다 한다. -index 를 통해서도 view 의 visibility 를 control 할 수 있다.viewAnimator.setDisplayChild( int index ) -animation 은 setInAnimation() 과 setOutAnimation() 을 .. 2016. 9. 5.
[Java] Double-checked locking 을 사용하지 말자! [Java] Double-checked locking 을 사용하지 말자! Double checked locking 이란? 보통 synchronized block 은 performance 이슈를 부르기 쉽다.double-checked locking 이 performance 이슈를 조금 완화시켜준다. double-checked locking 은 null check 와 같은 부분을 synchronized 밖으로 빼서synchronized 를 기다리지 않고 처리하게 만들어 준다. volatile 을 주면 read, write 가 sync 로 걸릴 경우 write 를 먼저 하게 하고, read 를 나중에 하게 한다.volatile 이 없다면 반대로 read 를 보통 먼저 하고 write 를 나중에 한다고 한다. .. 2014. 3. 31.
[android] soft input ( keyboard ) visibility 판단 android, soft input ( keyboard ) visibility 판단 private static final int SOFT_INPUT_MINIMUM_HEIGHT = 300; ViewGroup.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { mIsSoftInputShown = isSoftKeyboardShown( Activity, ViewGroup ); }}); private boolean isSoftKeyboardShown( Activity activity, View containerView ){int decorViewHei.. 2014. 2. 14.
[android] viewstub 이건 뭐하는 녀석이야?? 안드로이드, ViewStub 이건 뭐하는 녀석이야? ViewStub 은 매우 가벼운 더미 View 이다. 자주 사용하지 않는 layout 을 링크로 갖고 있는 녀석이다. 이 녀석은 GONE 과 같이 아무것도 그리지 않는다. lazy initialize 와 비슷하다고 볼 수 있는데, 개발자가 명시적으로 지시할 때 initialize 가 된다. 개발자가 ViewStub 을 inflate 하고 싶을 때는 ViewStub에 대해 inflate() 를 호출하거나 Visibility 속성을 VISIBLE 이나 INVISIBLE 로 변경해주면 된다. ViewStub 은 한번 inflate 가 되면 그 존재는 사라지고, inflated 된 layout 이 그 자리를 차지한다. 그래서 variable 로 유지할 필요가 .. 2013. 8. 2.
[android] Android Layout Tricks #4 : Optimize with stubs ( 성능 최적화 ) 출처 : 안드로이드 개발자 article Android LayoutTricks #1 (성능개선) Android Layout Tricks #2 : Reusing Layouts ( 성능개선 ) Android Layout Tricks #3 : Optimize by merging Window Backgrounds & UI Speed Android Layout Tricks #4 : Optimize with stubs * 원문에서는 Tricks #3 으로 제공되지만, 다른 article 과의 연관성을 고려하여 #4 로 명명하였다. - android 는 ViewStub 이라는 특별한 widget 을 제공한다. 이 녀석은 거의 쓰이지 않는 view 들에 대해 이점을 제공한다. - ViewStub 은 매우 가벼운 vie.. 2012. 11. 28.
반응형