gpt4 book ai didi

java - 对列表中的部分项目进行动画处理

转载 作者:行者123 更新时间:2023-12-01 09:35:19 24 4
gpt4 key购买 nike

我想为 listView 中的部分项目添加动画。动画是用代码描述的。

在不重载主线程的情况下执行此操作的最佳方法是什么?

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
StockExchangeModel stockExchangeModel = mStockExchangeModels.get(position);
ViewHolder holder;

if (convertView == null){
convertView = ((LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.item_stock_exchange, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}

if (stockExchangeModel.isNeedAnim()){
// blink color RED
// wait 0.2s
// return to start color
// wait 0.2s
// blink color RED
// wait 0.2s
// return to start color
}


holder.value.setText(String.format("%.2f",stockExchangeModel.getValue()));
holder.change.setText(stockExchangeModel.getChange());
holder.name.setText(stockExchangeModel.getName());


return convertView;
}

最佳答案

您可以使用 ValueAnimator 在颜色之间进行动画处理。

ValueAnimator animator = ValueAnimator.ofInt(0, 255, 0);
animator.setDuration(200).setStartDelay(200L);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int color = Color.argb((int) valueAnimator.getAnimatedValue(), 255, 0, 0);
stockExchangeModel.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
}
});
animator.start();

这将使您的项目从原始颜色变为红色,再变为原始颜色。

如果您想对此进行多次迭代,您可以考虑使用 AnimationSet 来代替并编排您的动画。

关于java - 对列表中的部分项目进行动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39025356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com