使用setImageResource的AnimationDrawable没有拉伸图像?

时间:2014-09-22 10:40:56

标签: android imageview android-drawable

我在res / drawable /:

中有rocket_thrust.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/r1" android:duration="200" />
<item android:drawable="@drawable/r2" android:duration="200" />
</animation-list>

res / layout / activity_main.xml中的ImageView

<ImageView
android:id="@+id/rocket_image"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ImageView>

MainActivity.java

AnimationDrawable rocketAnimation;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();

showAnim();
}

public void showAnim() {
rocketAnimation.start();
}

此代码正常运行。

但是,图像被拉长了。我不希望这种伸展。

我改变了:

rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

使用:

rocketImage.setImageResource(R.drawable.rocket_thrust);

没有拉伸。代码现在无法正常工作。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

我现在拥有它。

 <LinearLayout
 android:id="@+id/layoutRocketL"
 android:orientation="vertical"
 android:layout_alignParentBottom="true"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:gravity="center" >
      <ImageView
      android:id="@+id/rocket_image"
      android:orientation="vertical"
      android:layout_alignParentBottom="true"
      android:layout_width="200dp"
      android:layout_height="wrap_content" >
      </ImageView>
 </LinearLayout>

答案 1 :(得分:0)

 imgMain.setImageResource(R.drawable.sh);

                imgMain.post(new Runnable() {

                    @Override
                    public void run() {
                        AnimationDrawable frameAnimation = (AnimationDrawable) imgMain.getDrawable();
                        frameAnimation.start();
                    }
                });



<ImageView
            android:id="@+id/imgMain"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:scaleType="centerInside" />