안드로이드 앱의 버튼에 프레임 애니메이션을 넣으려고 시도했던 것에서 시작되었다.
일단 개발자 사이트에 있는 예제에는 아래처럼 배경에다가 애니메이션을 넣는 것으로 되어 있더라.
findViewById(R.id.view).setBackground(getDrawable(R.drawable.background));
근데 아래의 빨간 밑줄... API 레벨 16 이상에서 사용 가능하다고 한다. 내 앱 최소 설정은 14.
...뭐 짜증나지만 코드를 좀 수정했다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
findViewById(R.id.view).setBackground(getDrawable(R.drawable.background));
else
findViewById(view).setBackgroundDrawable(getDrawable(R.drawable.background));
띠요용! 밑줄을 없엣더니 이번엔 취소선이... 하나를 막으면 다른 하나에서 튀어나오고 점점 코드는 몸집이 불어나는 괴현상이 어김없이 발생. 이건 달리 할 수있는 것이 없어서 //noinspection deprecation
써주고 넘어갔다.
AnimationDrawable a = (AnimationDrawable) $(view).getBackground();
a.setOneShot(true);
a.start();
이러고 위 코드 써주니깐 애니메이션도 잘 되는 것 같았다. 그란데 역시나 오류는 마치 지방간처럼 몰래 숨어있다가 나타나는 법. 멀쩡히 되던 코드도 단말기를 바꾸니까 오류를 뿜어내기 시작함. 예전에 쓰던 전화기가 API 19여서 잘 되나 켜봤더니 역시나 강제종료되버림.
setBackground()
랑 setBackgroundDrawable()
둘 다 NoSuchMethodError
가 로그에 찍히는데 원인을 모름(지금도 이유 모름ㅡㅡ)
그래서 고심끝에, 배경말고 이미지 리소스를 이용하면 어떨까하는 묘안을 떠올리게 되고...
((ImageView) findViewById(R.id.view)).setImageDrawable(getDrawable(R.drawable.image));
이렇게 했더니 아예 안 됨.
여기저기 검색해보다 아래처럼 바꿈.
((ImageView) findViewById(R.id.view)).setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), getDrawable(R.drawable.image));
이랬더니 이미지는 바뀜. 근데 프레임애니메이션이 안 됨.
스스로를 질책하며 자괴감에 빠져있던 그때, 알콜성 음료가 뇌에 작용하자 놀랍도록 신비하게 해결책이 보이기 시작!
예전에 이미지 버튼 만들 때 분명 지금 필요한 코드를 썼던 것이 기억남. 바로 Ctrl+F 해서 Image로 검색 돌림. 결과 엄청 많이 나옴;; 하나씩 살펴 봄. 코드 발견함. 적용함.
((ImageView) findViewById(R.id.view)).setImageResource(R.drawable.image);
AnimationDrawable a = (AnimationDrawable) ((ImageView) findViewById(R.id.view)).getDrawable();
a.setOneShot(true);
a.start();
존나 잘 됨...
좀 허탈했지만 그래도 결과물에 만족.
기념으로 만들었던 애니메이션 중 몇개를 첨부한다.
끝.
'기록 #01: 컴퓨터' 카테고리의 다른 글
USB 메모리 용량이 줄어들었을 때 (0) | 2016.11.16 |
---|---|
네모네모 멈뭄미믜 저주가 걸린 글 (264) | 2016.06.19 |
티스토리 이미지 삽입 세로 길이 맞추기 꿀팁 (6) | 2016.06.18 |
커스텀 컨텍스트 메뉴 (0) | 2016.06.16 |
안드로이드 토스트 위치 제어 (0) | 2016.04.19 |
게시물 중앙에 애드센스 자동출력 (6) | 2015.08.15 |
페이지 내부 링크로 이동할 때 스크롤을 부드럽게 (5) | 2015.08.04 |
댓글달기 버튼에 동적 효과 추가 (9) | 2015.04.12 |
jQuery 툴팁 (3) | 2015.04.08 |
css 플립 카드 (1) | 2014.10.08 |