我正在尝试在列表视图中旋转图像(实际上是带有针的表盘)。列表视图中的条目数是动态的。这个表盘出现在每个条目中。我可以在一张图像上播放动画,但是当我使用 for() 循环实现它时,应用程序挂起。我需要“for()”循环的替代方案。
确切地说,旋转有点像指南针,总是指向我想要的位置。
我写的旋转函数如下。我通过使用标签映射来获取图像视图(列表视图中的所有条目的图像都是相同的)。
private void rotateImageView() {
Log.d ("","Compass >> >>Rotating..well trying :P>>");
Log.d ("","USERLIST >>" + imageTags);
if(imageTags != null)
{for(HashMap<String, String> map : imageTags)
{
View vi = new View(NearUsersList.this);
ImageView img = (ImageView) findViewById(R.id.dir_img);
if(img != null)
{
Log.d ("","IMG IS >>" + img);
RotateAnimation anim = new RotateAnimation(
(float) (-gyroOrientation[0] * 180 / Math.PI + Double.parseDouble(map.get("orientation"))),
(float) (-gyroOrientation[0] * 180 / Math.PI + Double.parseDouble(map.get("orientation"))),
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
// currentRotation = (currentRotation + 30) % 360;
anim.setInterpolator(new LinearInterpolator());
anim.setDuration(1000);
anim.setFillEnabled(true);
anim.setFillAfter(true);
img.startAnimation(anim);
}
}
}
}