2D翻转
视频http://www.jikexueyuan.com/course/341.html
activity_main.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/root" tools:context="com.example.card2d.MainActivity" > <ImageView android:id="@+id/ivA" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/background_1"/> <ImageView android:id="@+id/ivB" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/background_2"/> </FrameLayout>
MainActivity.java
public class MainActivity extends Activity { //声明变量 private ImageView imageA; private ImageView imageB; private ScaleAnimation sato0=new ScaleAnimation(1,0,1,1, Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f); private ScaleAnimation sato1=new ScaleAnimation(0,1,1,1, Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //调用初始化方法 initView(); //注册监听器,匿名内部类 findViewById(R.id.root).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //当点击图片的时候我们应该让A来进行执行 //启动动画,让它来加载图片A //判断imageA是否是显示的 if(imageA.getVisibility()==View.VISIBLE){ //让imageA加载第一个动画 imageA.startAnimation(sato0); } else{ //让imageB加载第二个动画 imageB.startAnimation(sato0); } } }); } //让图片A显示,图片B隐藏 private void showImageA(){ imageA.setVisibility(View.VISIBLE); imageB.setVisibility(View.INVISIBLE); } //让图片A隐藏,图片B显示 private void showImageB(){ imageA.setVisibility(View.INVISIBLE); imageB.setVisibility(View.VISIBLE); } //写一个初始化方法,让A显示 private void initView(){ //获得对象引用 imageA=(ImageView)findViewById(R.id.ivA); imageB=(ImageView)findViewById(R.id.ivB); //让图片A显示 showImageA(); //给动画添加执行时间0.5秒 sato0.setDuration(500); sato1.setDuration(500); //给第一个动画添加一个监听事件,当第一个动画执行完毕后执行第二个动画 sato0.setAnimationListener(new Animation.AnimationListener() { //动画开始执行触发 @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } //动画重复执行触发 @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } //动画停止执行触发 @Override public void onAnimationEnd(Animation animation) { // TODO Auto-generated method stub //监听第一个动画什么时候停止,停止了让它执行第二个 //判断第一个动画是否是显示的 if(imageA.getVisibility()==View.VISIBLE){ //因为这是结束的动画监听,如果第一个动画是显示的, //那么我们需要将它隐藏,然后执行第二个动画 //将第一张动画清空 imageA.setAnimation(null); //调用第二张动画 showImageB(); //同时给showB添加上动画效果 imageB.startAnimation(sato1); } else{//如果是第二张动画正在执行 //将第二张动画清空 imageB.setAnimation(null); //调用第一张动画 showImageA(); //同时给showA添加上动画效果 imageA.startAnimation(sato1); } } }); } }
相关推荐
huha 2020-10-16
xfcyhades 2020-11-20
sgafdsg 2020-11-04
Michael 2020-11-03
fengyeezju 2020-10-14
ziyexiaoxiao 2020-10-14
业余架构师 2020-10-09
OuNuo0 2020-09-29
moses 2020-09-22
Angelia 2020-09-11
qinxu 2020-09-10
刘炳昭 2020-09-10
Nostalgiachild 2020-09-07
Nostalgiachild 2020-08-17
leavesC 2020-08-14
一青年 2020-08-13
AndroidAiStudy 2020-08-07
ydc0 2020-07-30