我有线性布局和背景可绘制,而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>
答案 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"/>