1

私はImageViewそれをクリックして単一の画像をアニメーション化したいと思っています。しかし、スクロールすると、2 つの画像がアニメーション表示されます。なんで?

Animation  animationLeft;
ImageAdapter imageAdapter;ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
      animationLeft=AnimationUtils.loadAnimation(this, R.anim.transform_left);


     listView=(ListView) findViewById(R.id.listView1);
     imageAdapter=new ImageAdapter(this, items,images);
    listView.setAdapter(imageAdapter);

    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int 
      position,
                long arg3) {
            ImageAdapter mAdapter = (ImageAdapter)parent.getAdapter();

            final View vImage=   mAdapter.getView(position, view, 
    parent).findViewById(R.id.imageView1);
             animate(vImage);


        }
    });

}

public void animate(View v){
         TranslateAnimation anim = new TranslateAnimation
(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
                    Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF,
0.0f);
            anim.setDuration(6000);
             v.startAnimation(anim);

}
4

1 に答える 1

0

あなたの方法public void animate(View v)は、画像をアニメーション化できる非常にビューに焦点を当てているため、2つの画像がアニメーション化されています.....

以下のように Imageview で個別にアニメーションを設定してみてください

public void animate(View v){
ImageView thumbPhoto=(ImageView)view.findViewById(R.id.list_image);
        TranslateAnimation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF,0.0f);
        anim.setDuration(3000);
        thumbPhoto.startAnimation(anim);
}

可能であれば、おそらく onCreate() でこのメソッドを呼び出して、Activity が表示されるとすぐに画像がアニメーション化されるようにしてください。

于 2014-01-12T08:10:08.640 に答える