큰 문제가 있습니다. 나는 속도계의 종류를 구현하려고합니다. 나는 RPM과 같은 정보를 얻는다. .. 블루투스 위의 차에서 매 10-100ms. 지금 나는 바른 위치로 rpm 바늘을 회전시키고 싶다. 나는 데이터를 얻을 때마다 이것을한다.ImageView StartAnimation이 UI 속도를 극단적으로 느리게합니다.
ivNadel.startAnimation(RpmAnim);
ivBoost.startAnimation(BoostAnim);
ivLoad.startAnimation(LoadAnim);
애니메이션은 모두 다음과 같이 구현됩니다 :
//rotate Tachonadel
Rpmcurrentdegree=Rpmcurrentdegree+Rpmdegree;
Rpmdegree=((rpms-lastrpm)*RPMtoDegree);
if(Rpmdegree!=0)
{
RpmAnim=new RotateAnimation((float)Rpmcurrentdegree, (float)Rpmdegree, ivNadel.getWidth()/2, ivNadel.getHeight()/2);
RpmAnim.setInterpolator(new LinearInterpolator());
RpmAnim.setFillEnabled(true);
RpmAnim.setFillAfter(true);
}
문제가 startAnimations 약 0.5 초에 의해 UI의 반응 시간을 느리게한다는 것입니다. 나는 3 개의 startAnimation을 주석 처리 할 때 다시 잘 동작한다. 누구든지이 속도 저하를 피하는 방법을 알고 있습니까?
도 변화가 있었지만 ImageView가 rotateanimation 이후 새 위치를 보유하지 않은 경우에만 애니메이션을 시작하려고했습니다.
문제는 주어진 이미지 바늘을 사용해야한다는 것입니다. 이 예에서는 경로 – 5w4rley
을 사용하여 바늘을 비트 맵으로 변환하고 경로 대신 비트 맵을 회전합니다. – triggs
흠 작동 할 수 있습니다. 나는 너를 시험 할 것이다. – 5w4rley