2016-08-18 14 views
0

listView内の項目の一部をアニメーションしたいと思います。 アニメーションはコードで記述されています。List内の項目の一部にアニメーションを適用する

mainThreadをオーバーロードせずにこれを行うにはどうすればよいですか?

@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; 
    } 
+0

単にasynctaskを使用してください。 –

+0

これを行うにはこれが最善の方法だとは思わない – Esperanz0

+0

@MarcoBarbosaこれはアプリケーションをクラッシュさせる原因になります。別のスレッドでビューを更新することはできません。 – Linxy

答えて

1

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(); 

これは、オリジナルカラーから赤、オリジナルカラーにアイテムをアニメーション化します。

これを複数回繰り返したい場合は、代わりにアニメーションセットを使用し、アニメーションを振り付けすることを検討してください。

+0

Javaクラスモデル(stockExchangeModel)でgetBackground()を取得できません。私は、アニメ、ハンドラ、asynctasksを作成する方法を知っていますが、どのようなbesの方法を知りたい:)とにかくあなたの答えのthx – Esperanz0

+0

ああ、私はあなたがビューをアニメーションしようとしていたと思った。 – Linxy

+0

はい、私は試しています。 stockExchangeModelはJavaクラスモデルです。とにかく私はそれをリストの私の見方に変更します。だからその仕事 – Esperanz0

関連する問題