我想动画一些非常小的东西,试试吧......但是:
动画完美无背景。
当我设置主要布局的背景时,动画是超级滞后\慢,帧速率非常低。
这是我的代码:
主要片段:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainlayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- android:background="@drawable/backgroundhotpink" -->
<ImageView
android:id="@+id/flickit"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="83dp"
android:src="@drawable/switch_on" />
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="24dp"
android:text="message"
android:textSize="30sp"
android:typeface="sans" />
<TextView
android:id="@+id/score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/message"
android:layout_alignBottom="@+id/message"
android:layout_alignParentLeft="true"
android:layout_marginLeft="44dp"
android:gravity="center"
android:rotation="-45"
android:text="0"
android:textSize="23sp" />
<Button
android:id="@+id/startStopGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:text="Start Game" />
<ImageView
android:id="@+id/socketImageview"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_below="@+id/flickit"
android:layout_centerHorizontal="true"
android:src="@drawable/socket" />
<TextView
android:id="@+id/timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Time"
android:layout_margin="5dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
动画:
<?xml version="1.0" encoding="utf-8"?>
<set android:shareInterpolator="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="300" />
</set>
动画SyncTask:
protected Void doInBackground(View... params) {
final View v = params[0];
myHandler.post(new Runnable() {
public void run() {
v.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.scale_back_fowrad));
}
});
return null;
}
答案 0 :(得分:1)
由于您用于背景的图像的大小和格式,会出现此问题。请遵循以避免此问题:
答案 1 :(得分:0)
确保您的图片为PNG格式。
答案 2 :(得分:0)
如果正在运行资源密集型动画,并且视图内容正在发生变化,则最好通过设置除换行内容之外的值来优化布局中视图的大小。这样,每次绘制视图时都不必计算视图测量计算。
答案 3 :(得分:0)
与更改图像格式相比,我有更好的选择。如果使用图像,则以mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi模式生成图像并添加到项目中。这是android动画变慢的真正原因。尝试使用Adobe XD之类的工具以不同的模式导出图像,并将其添加到正确的可绘制文件夹中。
这些是mdpi,hdpi,.....文件夹