【发布时间】:2016-03-29 08:19:28
【问题描述】:
我有线性布局和可绘制的背景,以及我正在制作动画的 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 大小。
回答
由于某种原因(不知道为什么),像这个动画一样创建自定义drawable之后再次平滑:
<?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>
【问题讨论】:
-
代码 + 你的图片尺寸 + 更多信息。
-
我已经更新了原来的问题。