我们可以通过translate动画达到位置移动的动画效果,它会在指定时间内进行位置的变化,以下为效果对比图:
以下为代码示例:
anim部分xml代码:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="-6%"
android:fromYDelta="0"
android:toYDelta="260%"
android:duration="1500"
android:fillAfter="true"
>
</translate>
Java部分代码:
public class YindaoActivity extends AppCompatActivity {
private ImageView iv;
private TextView tv1;
private TextView tv2;
private FrameLayout fl;
private ImageView iv2;
private Animation animation2;
private Animation animation1;
private Animation animation5;
private Animation animation;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yindao);
a();
getHomeActivity();
}
public void a(){
fl = (FrameLayout) findViewById(R.id.ll);
iv = (ImageView) findViewById(R.id.iv);
iv2 = (ImageView) findViewById(R.id.imageView);
//加载动画
animation5 = AnimationUtils.loadAnimation(this, R.anim.translate);
iv2.startAnimation(animation5);
animation1 = AnimationUtils.loadAnimation(this, R.anim.alpha);
iv.startAnimation(animation1);
}
}
Layout的xml部分代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/i1"
android:id="@+id/ll"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/ren1"
android:alpha="0.9"
android:id="@+id/iv"
android:layout_marginTop="50dp"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:layout_marginLeft="70dp"
android:src="@drawable/i6" />
</FrameLayout>