2
私はカスタムlistview
を持っており、imageview
とtextview
を含んでいます。 この場合、imageview
をクリックすると、animation(rotate)
が始まります。 私の問題は次のとおりです。スクロールすると、アニメーションが停止しました。カスタムリストビューでアニメーションを開始する方法
public class AdapterFoodGroups extends BaseAdapter {
private static LayoutInflater mInflater = null;
Context context;
int[] foodImagesId;
String[] foodNameList;
String[] foodDescriptions;
int[] foodTimes;
boolean[] loadAnimation;
public AdapterFoodGroups(Context context, String[] foodNameList, String[] foodDescriptions, int[] foodTimes, int[] foodImagesId) {
// TODO Auto-generated constructor stub
this.foodNameList = foodNameList;
this.foodDescriptions = foodDescriptions;
this.foodTimes = foodTimes;
this.foodImagesId = foodImagesId;
this.context = context;
loadAnimation = new boolean[foodNameList.length];
for (boolean b: loadAnimation) {
b = false;
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final ViewHolder viewHolder;
final RotateAnimation anim = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5 f, Animation.RELATIVE_TO_SELF, 0.5 f);
anim.setInterpolator(new LinearInterpolator());
anim.setRepeatCount(Animation.INFINITE);
anim.setDuration(800);
if (convertView == null) {
mInflater = (LayoutInflater) context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.adapter_foodgroup, null);
viewHolder = new ViewHolder();
viewHolder.txtFoodName = (TextView) convertView.findViewById(R.id.txtFoodNameGrid);
viewHolder.txtFoodDescription = (TextView) convertView.findViewById(R.id.txtFoodDescriptionGrid);
viewHolder.txtFoodTime = (TextView) convertView.findViewById(R.id.txtFoodTimeGrid);
viewHolder.ivFoodImage = (CircularImageView) convertView.findViewById(R.id.ivFoodImageGrid);
viewHolder.ivLoad = (ImageView) convertView.findViewById(R.id.ivLoad);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
if (this.foodImagesId[position] != 0) {
viewHolder.ivFoodImage.setImageResource(this.foodImagesId[position]);
viewHolder.ivFoodImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, String.valueOf(position) + " = " + foodNameList[position], Toast.LENGTH_LONG).show();
}
});
}
if (this.foodNameList[position] != null) {
viewHolder.txtFoodName.setText(this.foodNameList[position]);
}
if (this.foodDescriptions[position] != null) {
viewHolder.txtFoodDescription.setText(this.foodDescriptions[position]);
}
if (this.foodTimes[position] != 0) {
viewHolder.txtFoodTime.setText(String.valueOf(this.foodTimes[position]) + " دقیقه");
}
viewHolder.ivLoad.setImageResource(R.drawable.load);
viewHolder.ivLoad.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewHolder.ivLoad.setAnimation(anim);
viewHolder.ivLoad.startAnimation(anim);
}
});
return convertView;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return foodNameList.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public static class ViewHolder {
public CircularImageView ivFoodImage;
public ImageView ivLoad;
public TextView txtFoodName;
public TextView txtFoodDescription;
public TextView txtFoodTime;
}
}
こんにちは、私の友人。私はこれをするが、働かない。 –
あなたのコードを試してみましたが、実際に問題がありました。私は私の答えを編集して、今それは私のために働く。それを試して、それがあなたのために働くかどうかを教えてください –
非常に非常に非常に感謝...非常に非常に非常に有用....非常にありがとう –