Android背景动画问题

时间:2015-12-22 23:59:55

标签: android android-animation

我有线性布局和背景可绘制,而ImageView里面我正在制作动画。如果我从线性布局中移除背景图像动画非常流畅,但是当我重新打开背景图像时,它非常非常慢。知道为什么以及如何解决这个问题?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:gravity="center"
          android:background="@drawable/background"
          android:orientation="vertical" >

<ImageView
android:id="@+id/demoImage"
android:layout_width="wrap_content"
android:src="@drawable/temp"
android:maxWidth="200dp"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:layout_height="wrap_content"/>


</LinearLayout>

我只将这两个动画应用于图像:

AnimationUtils.loadAnimation(this, R.anim.zoomin);
AnimationUtils.loadAnimation(this, R.anim.zoomout);

他们在没有这部分的情况下工作得很好,但是这部分非常缓慢(逐帧):

android:background="@drawable/background"

此background.png为750x600px png文件~40kb大小。

ANSWER

出于某种原因(不知道为什么),在创建自定义绘图后,像这样的动画再次平滑:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="#FFFFFF"></color>
</item>
<item>
<bitmap
    android:src="@drawable/background"
    android:gravity="top"
    />
</item>
</layer-list>

1 个答案:

答案 0 :(得分:0)

尝试将xml代码中的scaletype切换到fitCenter。 centerInside不会减少正在处理的数据量,只是缩放图像以适应容器。

下面:

<ImageView
android:id="@+id/demoImage"
android:layout_width="wrap_content"
android:src="@drawable/temp"
android:maxWidth="200dp"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_height="wrap_content"/>
相关问题