80,351
社区成员
发帖
与我相关
我的任务
分享
public class MainActivity extends Activity {
private ImageView image1, image2;
private AnimatorSet animatorSet, animatorSet2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1 = (ImageView) findViewById(R.id.image1);
image2 = (ImageView) findViewById(R.id.image2);
animatorSet = (AnimatorSet) AnimatorInflater.loadAnimator(this,
R.animator.scale);
animatorSet2 = (AnimatorSet) AnimatorInflater.loadAnimator(this,
R.animator.scale);
animatorSet.setTarget(image1);
animatorSet2.setTarget(image2);
animatorSet2.setStartDelay(2000);
animatorSet.start();
animatorSet2.start();
}
scale.xml的代码。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="together" >
<objectAnimator
android:duration="4000"
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="scaleX"
android:repeatCount="infinite"
android:valueFrom="1.0"
android:valueTo="1.5"
android:valueType="floatType" >
</objectAnimator>
<objectAnimator
android:duration="4000"
android:interpolator="@android:anim/linear_interpolator"
android:propertyName="scaleY"
android:repeatCount="infinite"
android:valueFrom="1.0"
android:valueTo="1.5"
android:valueType="floatType" >
</objectAnimator>
</set>
public class MainActivity extends Activity {
private ImageView image1, image2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1 = (ImageView) findViewById(R.id.image1);
image2 = (ImageView) findViewById(R.id.image2);
startScale1(image1);
startScale2(image2);
}
public void startScale1(View v) {
ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(v, "ScaleX",
1.0f, 1.5f);
objectAnimator1.setRepeatCount(Animation.INFINITE);
objectAnimator1.setInterpolator(new LinearInterpolator());
objectAnimator1.setDuration(4000).start();
ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(v, "ScaleY",
1.0f, 1.5f);
objectAnimator2.setRepeatCount(Animation.INFINITE);
objectAnimator2.setInterpolator(new LinearInterpolator());
objectAnimator2.setDuration(4000).start();
}
public void startScale2(View v) {
ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(v, "ScaleX",
1.0f, 1.8f);
objectAnimator1.setRepeatCount(Animation.INFINITE);
objectAnimator1.setInterpolator(new LinearInterpolator());
objectAnimator1.setStartDelay(2000); //用到了开始延迟这个属性,呵呵,比较取巧。
objectAnimator1.setDuration(4000);
objectAnimator1.start();
ObjectAnimator objectAnimator2 = ObjectAnimator.ofFloat(v, "ScaleY",
1.0f, 1.8f);
objectAnimator2.setRepeatCount(Animation.INFINITE);
objectAnimator2.setInterpolator(new LinearInterpolator());
objectAnimator2.setStartDelay(2000);
objectAnimator2.setDuration(4000);
objectAnimator2.start();
}
}
代码比较乱,自己整理下吧。
方法不止一种,关于动画的网上很多资料,不要拘泥于形势,这个是比较简单的了。呵呵。