Android/Reference

android:backgroundTint : 버튼 색을 변경 android:src : 버튼 안에 아이콘 넣을 때 사용 app:pressedTranslationZ: 버튼 클릭 시 그림자 범위 app:elevation : 액티비티 바닥부터 버튼까지의 높이 visibility 속성을 사용해 특정 플로팅 액션 버튼을 눌렀을 때 가시성을 켜주거나 애니메이션을 주어 나타내는 효과를 줄 수 있다. 실습해본 애니메이션으로는 메인 버튼을 눌렀을 때 다른 버튼이 올라가고 내려가는 애니메이션을 사용하였다. 올라가는 animation 내려가는 animation 이러한 애니메이션을 사용해 플로팅 버튼을 클릭해 프래그먼트를 변경하는 실습을 해보았다. class FloatingBtnActivity : AppCompatActivit..
RecyclerView 사용시 수정된 데이터를 다시 뿌려주기 위해서 notifyDataSetChanged()를 사용해 화면을 다시 갱신을 시킬 경우가 많다. 화면을 갱신시키는데 깜빡임 현상 때문에 고정되어있는 데이터들도 깜빡거려 안 좋게 보일 수가 있다. Kotlin val animator = recyclerHome?.itemAnimator //리사이클러뷰 애니메이터 get if (animator is SimpleItemAnimator){ //아이템 애니메이커 기본 하위클래스 animator.supportsChangeAnimaions = false //애니메이션 값 false (리사이클러뷰가 화면을 다시 갱신 했을때 뷰들의 깜빡임 방지) } Java RecyclerView.ItemAnimator anim..
리사이클러뷰의 맨 첫 번째 또는 마지막 요소에서 스크롤(오버스크롤)할 경우 엣지 스크롤 이펙트가 적용되어 있다. 요구사항으로 인해 이펙트를 숨겨야 하는 상황이 있을수도 있다. 검색해보면, 대부분 리사이클러뷰에 android:overScrollMode="never" 속성을 적용하면 해결할 수 있다고 나와있다. 실제로 이 속성만 추가해주면 해당 이펙트는 사라진다. 하지만 오버스크롤 모드가 비활성화 되기 때문에, 오버스크롤이 필요한 경우에는 적용하기에 부적절한 방법이다. 그래서 오버스크롤 모드가 필요한 경우에 아래와 같은 방법으로 해주면 된다. (주의 - 다른 사이드이펙트가 발생할 수 있음) Kotlin recyclerView.edgeEffectFactory = object : RecyclerView.Edge..
AnimationDrawable - Drawables을 애니메이션화 하는 방법은일련의 Drawble Resource를 차례로 Load하여 Animation을 만드는 것 - 이는 한 통의 필름처럼 일련의 여러 다른 Image를 순서대로 재생하여 만드는 기본 Animation - AnimationDrawable 클래스는 Drawable Animation의 기초이다. 연습용 Image 파일 Animation-List 생성 XML 파일은 루트 노드인 animation-list 요소 이제 움직일 Image들을 순서대로 넣어준다(item) (실행 시 순서대로 움직임) animation-list에다 android:oneshot="true"를 추가하면 한 번만 순환한 다음 마지막 프레임에서 정지된 상태 유지 andro..
OnClickListener를 상속받는 새 클릭 리스너를 생성한다. class OnSingleClickListener(private val onSingleClick: (View) -> Unit) : View.OnClickListener { companion object { const val CLICK_INTERVAL = 500 } private var lastClickedTime: Long = 0L private fun isSafe(): Boolean { return System.currentTimeMillis() - lastClickedTime > CLICK_INTERVAL } override fun onClick(v: View?) { if (isSafe() && v != null) { onSingle..
기본테마의 액션바를 사용하지 않는 방법 windowNoTitle true 지정, windowFullscreen true 지정 코드로 상태바, 전체화면 제거 방법 // 1. OnCreate 메소드 안 Window.FEATURE_NO_TITLE 호출 (추천x) requestWindowFeature(Window.FEATURE_NO_TITLE) // 2. window - getWindow() 로 Window의 설정을 얻어와 WindowManager의 LayoutParameter 풀 스크린 속성 지정 방법 //풀스크린 Java getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCR..
LinearLayoutManager의 findPostion 메소드 사용 findViewByPosition() 주어진 어댑터 위치를 나타내는 뷰를 찾음 findFirstVisibleItemPosition() 표시되는 첫 번째 뷰의 어댑터 위치를 반환 findFirstCompletelyVisibleItemPosition() 완전히 보이는 첫 번째 뷰의 어댑터 위치를 반환 findLastVisibleItemPosition() 표시되는 마지막 뷰의 어댑터 위치를 반환 findLastCompletelyVisibleItemPosition() 마지막으로 완전히 보이는 뷰의 어댑터 위치를 반환 findFirstVisibleItemPosition은 item 0 리턴, findFirstCompletelyVisibleIte..
리사이클러뷰에서 드래그(스크롤)할 때 특정 액션이나 기능을 구현하기 위해 사용 val onScrollListener = object:RecyclerView.OnScrollListener() { override fun onScrolled(@NonNull recyclerView:RecyclerView, dx:Int, dy:Int) { super.onScrolled(recyclerView, dx, dy) } override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { super.onScrollStateChanged(recyclerView, newState) } } onScrolled 인자의 recyclerView는 연결해준 리사이..
Android에서 버튼을 만들다 보면 동적으로 여러 디자인이나 기능을 구현하고 싶을 때가 있다. 그럴 때 selector item속성 사용 selected 속성을 사용해 selecter생성 이것들을 src나 background로 지정해주면 해당 셀릭터 속성에 따른 디자인을 구현 가능하다. selector item 속성의 종류 state_pressed = [true, false] 눌린 상태 구분 state_selected = [true, false] 선택 상태 구분 state_checked = [true, false] 체크 상태 구분 state_checkable = [true, false] 체크 가능 상태 구분 state_focused = [true, false] 포커스 상태 구분 state_enabled..
bumjae
'Android/Reference' 카테고리의 글 목록 (4 Page)