나는 두 시간 동안 해결하려고 노력해 왔던 이상한 상황에 빠졌습니다. 그것은 내부의 Runnable이기 때문에 도달 할 수없는안드로이드 안쪽과 바깥 쪽 클래스 딜레마
} else {
ChangecolorFade.end();
ChangecolorFade.cancel();
}
여기
내가 else 문 내부의 ObjectAnimator을 중지하려고public boolean AutoSlowColorChange(boolean SlowOn) {
if (SlowOn) {
final Random rand = new Random();
final Handler handler = new Handler();
Runnable r = new Runnable() {
public void run() {
int Changecolor = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
ObjectAnimator ChangecolorFade = ObjectAnimator.ofObject(screen, "backgroundColor", new ArgbEvaluator(),
Color.argb(Changecolor, Changecolor, Changecolor, Changecolor), Changecolor);
//slow change
ChangecolorFade.setDuration(2000);
ChangecolorFade.start();
ChangecolorFade.setRepeatCount(ValueAnimator.INFINITE);
ChangecolorFade.setRepeatMode(ValueAnimator.REVERSE);
int value = rand.nextInt(10);
handler.postDelayed(this, 4000);
}
};
handler.postDelayed(r, 1000);
} else {
ChangecolorFade.end();
ChangecolorFade.cancel();
}
return SlowOn;
}
내 주요 활동 자바 파일 안에 내 부울 방법입니다(), 메소드의 시작 부분에 ObjectAnimator를두면 Runnable과 else 문 모두에서 읽을 수있게됩니다.
public boolean AutoSlowColorChange(boolean SlowOn) {
int Changecolor = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
ObjectAnimator ChangecolorFade = ObjectAnimator.ofObject(screen, "backgroundColor", new ArgbEvaluator(),
Color.argb(Changecolor, Changecolor, Changecolor, Changecolor), Changecolor);
그것이 내가 무작위로 색상을 변경할 수 없습니다 나는 마지막이기 때문에 17,451,515,
내가 마지막으로 선언하면 최종
public boolean AutoSlowColorChange(boolean SlowOn) {
int Changecolor = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
final ObjectAnimator ChangecolorFade = ObjectAnimator.ofObject(screen, "backgroundColor", new ArgbEvaluator(),
Color.argb(Changecolor, Changecolor, Changecolor, Changecolor), Changecolor);
로 선언, 그것은 Runnable를 읽을 수됩니다() 및 그러나 다른 문이있을 것이다
또한 public 메인 메서드 내부에 Changecolor int를 배치하려고 시도했지만 행운이 없습니다. 그리고
아래에 다른 ObjectAnimator를 만들면public boolean AutoSlowColorChange(boolean SlowOn) {
ObjectAnimator ChangecolorFade2 = ObjectAnimator.ofObject(screen, "backgroundColor", new ArgbEvaluator(),
Color.argb(Changecolor, Changecolor, Changecolor, Changecolor), Changecolor);
현재 애니메이션 실행을 중지 할 수 없습니다.
나는이 딜레마에 대한 아이디어가있는 사람이 있습니까? 고마워요 :)
대단히 감사합니다. :) – deathsonic