내 앱에 문제가 있습니다. 애니메이션을 반복하지만 onAnimationRepeat
함수 (AnimationListener
클래스)가 호출되지 않을 때 ImageView를 수정하고 싶습니다. Android (API 7) - 애니메이션 : onAnimationRepeat
이
을 재현하기 위해 샘플입니다- 새 프로젝트 "테스트"를 작성 (안드로이드 2.1, API 7)
- 이
res
폴더 안에 폴더anim
만들기 (I 패키지 이름com.test.test
을 사용) 이러한 라인
을 다음은 함께 fade_in.xml
를 만들 ctivity 코드 :
package com.test.test;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.PorterDuff.Mode;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.widget.Button;
import android.widget.ImageView;
public class TestActivity extends Activity {
Button button = null;
ImageView image = null;
Animation animation = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button1);
image = (ImageView)findViewById(R.id.imageView1);
animation = AnimationUtils.loadAnimation(this, R.anim.fade_in);
animation.setAnimationListener(new AnimationListener() {
int repeatNumber = 0;
@Override
public void onAnimationStart(Animation animation) {Log.i("start", "start");}
@Override
public void onAnimationEnd(Animation animation) {Log.i("end", "end");}
@Override
public void onAnimationRepeat(Animation animation) {
repeatNumber++;
Log.i("repeat", String.valueOf(repeatNumber));
switch(repeatNumber)
{
case 1:image.setColorFilter(Color.RED, Mode.MULTIPLY);break;
case 2:image.setColorFilter(Color.BLUE, Mode.MULTIPLY);break;
case 3:image.setColorFilter(Color.YELLOW, Mode.MULTIPLY);break;
default:break;
}
}
});
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {image.startAnimation(animation);}
});
}
}
그리고 레이아웃 :
이<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
ImageView
색상이 변경되지 않습니다 ... 당신이 나를 도와 드릴까요?
재설정 할 수없는 카운터 변수 값을 확인하십시오. – Pratik
Log.i ("repeat", String.valueOf (repeatNumber)); => logcat에는 나타나지 않습니다. repeatNumber는 샘플 용으로 만 만들어졌습니다. – user1887611