1

リストビューで画像(実際には針のあるダイヤル)を回転させようとしています。リストビューのエントリ数は動的です。このダイヤルは、各エントリにあります。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 を搭載したマルチコア プロセッサが必要になることがわかりました。このような構成は、現在の Android デバイスでは確実に利用できません。それで、それを達成する別の方法を考え出しました。

于 2013-03-18T10:11:07.100 に答える