Android Animation(三)
3379 ワード
前に作成したいくつかのアニメーションは、反転、平行移動はそれぞれ独立しています。以下はミックスを作成し、同時にxmlとjavaのコードを利用するプログラムも作成しました。
前と同じように、まずresの下でanimフォルダを作成して、xmlファイルを作成します。
1.animone.xml
前と同じように、まずresの下でanimフォルダを作成して、xmlファイルを作成します。
1.animone.xml
2.activity_main.xml
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private Button btnStartXml;
private Button btnStartJava;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.image_view);
btnStartXml = (Button) findViewById(R.id.btn_start_xml);
btnStartJava = (Button) findViewById(R.id.btn_start_java);
btnStartXml.setOnClickListener(new XmlListener());
btnStartJava.setOnClickListener(new JavaListener());
}
class XmlListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.animone);
imageView.startAnimation(animation);
}
}
class JavaListener implements View.OnClickListener{
@Override
public void onClick(View v) {
AnimationSet animationSet = new AnimationSet(true);
ScaleAnimation scaleAnimation = new ScaleAnimation(0,0.1f,0,0.1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
RotateAnimation rotateAnimation = new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
rotateAnimation.setDuration(1000);
animationSet.addAnimation(rotateAnimation);
animationSet.addAnimation(scaleAnimation);
imageView.startAnimation(animationSet);
}
}
}