2016-04-11 6 views
1

を設定した後に失われました。ImageViewの属性は、私はImageViewのにフレームアニメーションを設定しようとしていますアニメーション

imageAnim = (ImageView) rootView.findViewById(R.id.orderCards); 
imageAnim.setBackgroundResource(R.drawable.image_switcher_anim); 
imageAnim.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
anim = (AnimationDrawable) imageAnim.getBackground(); 
anim.start(); 

高さ幅、縮尺タイプなどのすべての画像ビュー属性は失われます。 私はこのため、背景リソースと画像がscaletypeずに表示されるようにアニメーションを設定する起こる理解。

私は2つの可能性が は、この問題を回避するために、背景としてそれを設定せずにアニメーションを設定する方法はあります参照してください? OR は、高さ、幅などの属性などは、画像の背景に設定できます。

答えて

0

これを試してみてください:

imageAnim.invalidateDrawable(anim); 

これはイメージビューを再描画します。

+0

NO ...それは...それは実際にアニメーションを削除し、フレームは変更されません助けdoes notの。 – Bags

0

私たちは、アニメーションフォルダ内の動画ファイルを設定しImageViewのソースとして設定し、代わりにgetResourceBackgroundのgetdrawableとanimationDrawableに割り当て、アニメーションを開始する必要があり、別のリンク Android animation with multiple jpeg files?

に答えを見つけました。これにより、イメージビューのすべてのレイアウト属性が維持されます。

XMLコード

<ImageView android:id="@+id/orderCards 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:scaleType="fitCenter" 
      android:adjustViewBounds="true" 
      android:src="@anim/image_switcher_anim"/> 

Javaコード

imageAnim = (ImageView) rootView.findViewById(R.id.orderCards); 
       anim = (AnimationDrawable) imageAnim.getDrawable(); 
       imageAnim.post(run); 

Runnable run = new Runnable() { 
     @Override 
     public void run() { 
      anim.start(); 
     } 
    }; 
関連する問題