Android 응용 프로그램 개발 - 애니메이션 드 로 어 블 ImageView 디 스 플레이 애니메이션
주의해 야 할 점 은 Animation Drawable 의 효 과 는 애니메이션 처럼 보이 지만 실제 코드 처리 에 서 는 Drawable 로 봐 야 하 며, 사실상 Drawable 에 계승 되 어 있 으 며, XML 프로필 도 res / drawable 디 렉 터 리 에 놓 여 있다 는 점 이다.
Animation Drawable 은 XML 설정 에서 < animation - list > 를 루트 요소 로 사용 한 다음 < item > 요 소 를 사용 하여 각 프레임 에 drawable 자원 과 이 drawable 자원 의 표시 지속 시간 을 정의 합 니 다.다음은 예시 입 니 다.
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
위의 XML 설정 에는 세 프레임 의 내용 만 포함 되 어 있 으 며, 각 프레임 은 200 ms 지연 된다.안 드 로 이 드: oneshot 속성 이 true 로 설정 되면 이 Animation Drawable 은 한 번 만 실행 되 고 마지막 프레임 에 정 해 집 니 다. 안 드 로 이 드: oneshot 속성 이 false 로 설정 되면 이 세 프레임 을 무한 순환 적 으로 표시 합 니 다.
아래 코드 는 위의 XML 설정 의 Animation Drawable 을 ImageView 에 어떻게 적용 하 는 지 보 여 줍 니 다.
AnimationDrawable rocketAnimation;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();
return true;
}
return super.onTouchEvent(event);
}
Notice: Animation Drawable 의 start () 방법 은 Activity. onCreate () 에서 호출 할 수 없습니다. 그 때 는 Animation Drawable 이 window 에 완전히 붙 어 있 지 않 았 기 때 문 입 니 다.Animation Drawable 에서 그림 을 자동 으로 재생 하려 면 Activity. onWindow FocusChanged () 방법 에서 start () 방법 을 호출 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.