if(startangle > 0 )
{
int numToChange = startangle / 30;
- for (int i = 1; i <= numToChange; i++)
+ int cnt = 0;
+ for (int i = numToChange - 1; i >= 0; i--)
{
+ if(cnt >= 12) //优化算法,只取最后12次图片路径设置,减少重复计算
+ {
+ break;
+ }
// 计算 index 和 appIndex
- index = i % nativeAppNum + 11;
+ index = i % nativeAppNum + 12;
appIndex = index;
if (startangle >= 360) {
appIndex = index % nativeAppNum;
}
// 计算 circleIndex
- circleIndex = (12 - i) % 12;
+ circleIndex = (11 - i) % 12;
if (circleIndex < 0) {
circleIndex += 12;
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
+ cnt++;
}
}
else if(startangle < 0)
{
int numToChange = abs(startangle) / 30;
- for (int i = 0; i < numToChange; i++)
+ int cnt = 0;
+ for (int i = numToChange - 1; i >= 0; i--)
{
+ if(cnt >= 12) //优化算法,只取最后12次图片路径设置,减少重复计算
+ {
+ break;
+ }
index = i % nativeAppNum + 12;
appIndex = index;
if (abs(startangle) >= 360)
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "circleIndex:%d,appIndex:%d name:%s", circleIndex, appIndex, ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
CircleListAPP[circleIndex]->SetSrc(ApplistModel::GetInstance().GetApplistItems()[appIndex].iconSmall);
CircleListAPP[circleIndex]->SetViewIndex(ApplistModel::GetInstance().GetApplistItems()[appIndex].id);
+ cnt++;
}
}
else