1

我正在尝试在列表视图中旋转图像(实际上是带有针的表盘)。列表视图中的条目数是动态的。这个表盘出现在每个条目中。我可以在一张图像上播放动画,但是当我使用 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);
           }
    }
      }
    }
4

1 回答 1

0

我发现这样的实现需要具有巨大 RAM 的多核处理器才能运行。在目前的任何安卓设备中,这样的配置肯定是不可用的。所以,想出了另一种方法来实现它。

于 2013-03-18T10:11:07.100 回答