以编程方式在Android中创建ImageView

Ahm*_*laf 2 android android-animation android-imageview

我按照这个来创建一个简单的动画.

该示例ImageView在主布局中手动创建,具有这样的资源android:src="@anim/anim_android

问题是,当我创建动态ImageView,并且我像这样设置资源时myImageView.setImageResource(R.anim.anim_android);,动画不起作用,只是查看序列的第一个图像.

有帮助吗?

谢谢.

Hou*_*ine 6

你可以从你开始动画imageView:

myImageView.setImageResource(R.anim.anim_android);
final AnimationDrawable myAnimationDrawable = (AnimationDrawable)myImageViewn.getDrawable();

myImageView.post(
new Runnable(){

  @Override
  public void run() {
   myAnimationDrawable.start();
  }
});
}
Run Code Online (Sandbox Code Playgroud)

编辑:我认为你没有添加ImageView你的布局(contentView你的Activity); 试试这个 :

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        RelativeLayout rootLayout = new RelativeLayout(this);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        rootLayout.setLayoutParams(params);

        ImageView myAnimation = new ImageView(this);
        RelativeLayout.LayoutParams paramsImage = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        paramsImage.addRule(RelativeLayout.CENTER_IN_PARENT);
        myAnimation.setLayoutParams(paramsImage);
        myAnimation.setImageDrawable(getResources().getDrawable(R.anim.anim_android));
        rootLayout.addView(myAnimation);

        setContentView(rootLayout);


        final AnimationDrawable myAnimationDrawable = (AnimationDrawable)myAnimation.getDrawable();

        myAnimation.post(new Runnable() {

            @Override
            public void run() {
                myAnimationDrawable.start();
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

  • @khalafnt:我认为你没有在你的布局中添加你的imageView,我现在已经创建了一个演示,我已经测试了它并且它有效,看看我的编辑 (2认同)