본문 바로가기

View

[Android] View translate animation 뷰를 이동 시키는 애니메이션을 구사할 때, 아래와 같은 형태를 먼저 생각하게 됩니다. 1. translate xml을 이용하여 애니메이션을 지정한다.2. xml로 Animation 클래스를 생성 한다.3. 애니메이션을 넣고자 하는 View에 설정 한다.4. Animation을 start 시킨다. 위와 같은 형태는 복잡할 뿐만 아니라 버그나 예외 상황이 너무 많이 발생 합니다.역시나 구글 형님들이 좋은 API를 만들어 두었네요. mView.animate().translationY(500).withLayer();위와 같이 하면 mView 라는 View를 500px 아래로 내리는 애니메이션을 실행 해라. withLayer 함수를 함께 사용하면 mView가 그 자리에 고정이 됩니다. 만약 아래 두 함수를 번갈아.. 더보기
[Android] OnTouchListener에서 SingleTap 활용 하기 OnClickListener라는 좋은 리스너가 안드로이드에는 있지만,RecyclerView나 ChildView가 있는 경우에 OnClickListener가 먹히지 않는 경우가 있다. 이럴 경우, setOnTouchListener를 이용하는데 초창기에는 일일이 범위와 위치, 시간을 가지고 Click인지 체크하였지만GestureDector가 나온 이후로 이런 고민은 빠이빠이 됐다. ...gestureDetector = new GestureDetector(getActivity(), new SingleTapConfirm()); mCastContainer.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, .. 더보기
[Android] Make CustomView (TextView, OnMeasure) CustomView를 만들어 보고자 합니다.하고자 하는 것은 TextView Background 에 기본적으로 RoundRect 가 그려지도록 할 예정입니다. 여기서 필요한 기술이 두가지 입니다. 1. Background를 어떻게 그리지??2. CustomeView의 크기를 어떻게 조절하지??? 모든것을 설명해 드릴 수 없지만, 개발하는데 유용할 만한 내용은 될것이라 생각 됩니다. 먼저, Background에 이미지를 넣을때 아래와 같은 방법을 많이 씁니다. (전..그랬음.._) - FrameLayout으로 감싼 후, Background로 활용할 이미지를 ImageView에 먼저 그린 후 그 다음으로 위에 표현하고자 하는 View를 올린다. 단점 ) View의 크기가 고정 되어 있지 않으면 (예를 들어 .. 더보기
[Android] View Background를 Rounded corner 형태로 반영 RecyclerView나 ListView와 같은 여러 View가 묶어서 표현해야 하는 View에서 Corner 부분만 라운드를 시키고자 할때,가장 쉽게 생각할 수 있는 부분이 Background에 Rounded된 이미지를 넣는 것으로 어느정도 해결이 된다. 하지만, 이 외에도 한가지 더 좋은 방법이 있다.Rounded Corner 형태의 Drawable을 xml로 그리는 것이다.그게 아래 소스이다. 위 속성에서 corners 라는 값을 가지고 Corner에 Rounding 정도를 체크 할 수 있다. ## 위 형태로도 문제없이 동작이 가능 하면 좋지만, RecyclerView 나 ListView 등에서 row에 있는 View가 튀어 나오는 경우가 있습니다. 그럴 경우 아래와 같이 clip 을 한번 해줘보세.. 더보기
[Android] Background animation에 쓸만한 TransitionDrawable 혹시 RadioButton 이나 Switch 관련된 View를 사용하고자 할 경우, 한번 고려해보면 나쁘지 않을 것이다.그냥 xml로 정의 해서 background에 넣는 방법이 있고, 직접 코드에 넣을 수도 있다. 1. xml로 정의 res/drawable 폴더안에 btn_transition_drawable.xml 라는 xml 파일을 만들어 놓고, 아래 소스대로 코딩 합니다. 그 다음, 사용하고자 하는 View background에 위 xml로 설정 합니다.이로써 설정은 끝났습니다.이제 TransitionDrawable에 Animation을 동작하게 하는 코드만 넣어주면 됩니다.코드는 아래와 같습니다.// set background animation Drawable drawable = findViewB.. 더보기
[Android] Material Design Ripple Animation Material Design을 진행 하는동안에 Android 에서 기본적으로 Click Animation을 지원해주는 View가 있는 반면에,그렇게 되지 않는 View 일 경우 해당 Animation을 만들어야만 합니다.이때 사용할만한 좋은 Library가 있어서 공유하고자 합니다. https://github.com/traex/RippleEffect 아래와 같이 표현하고자 하는 View나 Layout을 감싸주기만 하면 됩니다.IntegrationThe lib is available on Maven Central, you can find it with Gradle, pleasedependencies { compile 'com.github.traex.rippleeffect:library:1.3' } Usag.. 더보기
[Andoird] Button 클릭 시, textColor 변경 text_selector.xml layout.xml 위와 같이 하면 적용 된다. Java 단에서 하고자 한다면 아래 소스를 참고 하세요. 예) /res/color/selector_text.xml123456 ;버튼이 xml layout 에 있는 경우는 그냥 android:textColor=”@color/selector_text.html” 로 지정해주면 되지만,만약 java 안에서 프로그램적으로 세팅해 주는 경우는 다음과 같은 코드를 써야 한다.123btnTest.setTextColor( getResources().getColorStateList(R.color.selector_text));이렇게 안 하고 그냥 getColor() 를 사용하면 버튼 터치 시 색 변화가 없다.출처 : https://chrisjh.. 더보기
[Android] RecyclerView 에서 각 View 크기 조절 RecyclerView 에서 동적으로 Layout을 바꾸고 싶을 경우 아래와 같이 수정해보세요.View의 width 와 height를 같게 만드는 소스 이다. ## onBindViewHolder 함수 내에서GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams)viewHolder.itemView.getLayoutParams(); layoutParams.height = layoutParams.width; viewHolder.itemView.requestLayout(); RecyclerView에서 설정한 LayoutManager에서 사용하는 LayoutParams를 가져 온후, 수정하면 된다. 참고 하세요. 더보기