リストビューで画像(実際には針のあるダイヤル)を回転させようとしています。リストビューのエントリ数は動的です。このダイヤルは、各エントリにあります。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);
}
}
}
}