Android studio :实现2D翻转
一、准备

1、需要两张图片
2、了解FrameLayout布局

二、具体代码实现

xml代码:

       

java代码:

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.animation.Animation;import android.view.animation.ScaleAnimation;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    private ImageView imageA;    private ImageView imageB;    //创建动画1    private ScaleAnimation sato0 = new ScaleAnimation( 1,0,1,1,            Animation.RELATIVE_TO_PARENT,0.5f,Animation.RELATIVE_TO_PARENT,0.5f );    //创建动画2    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) {//                imageA.startAnimation( sato0 );                if(imageA.getVisibility() == View.VISIBLE){                    imageA.startAnimation( sato0 );                }else {                    imageB.startAnimation( sato0 );                }            }        } );    }    private void showImageA(){        imageA.setVisibility( View.VISIBLE );        imageB.setVisibility( View.INVISIBLE );    }    private void showImageB(){        imageA.setVisibility( View.INVISIBLE );        imageB.setVisibility( View.VISIBLE );    }    private void initView(){        imageA = findViewById( R.id.a );        imageB = findViewById( R.id.b );        showImageA();        sato0.setDuration( 500 );        sato1.setDuration( 500 );        //添加结束监听        sato0.setAnimationListener( new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {            }            @Override            public void onAnimationEnd(Animation animation) {                if(imageA.getVisibility() == View.VISIBLE){                    imageA.setAnimation( null );                    showImageB();                    imageB.setAnimation( sato1 );                }else {                    imageB.setAnimation( null );                    showImageA();                    imageA.startAnimation( sato1 );                }            }            @Override            public void onAnimationRepeat(Animation animation) {            }        } );    }}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. android EditText设置不可写
  4. Android(安卓)拨号器的简单实现
  5. android 使用html5作布局文件: webview跟javascript交互
  6. android实现字体闪烁动画的方法
  7. android studio调试c/c++代码
  8. Android中不同应用间实现SharedPreferences数据共享
  9. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13

随机推荐

  1. Retrofit2.0 增加公共参数
  2. QEMU, KVM, QEMU-KVM 和 Goldfish
  3. Android(安卓)- LayoutAnimation 动画效
  4. android调用第三方库——第一篇
  5. android 里 thumbdata3 数据格式
  6. android studio 导入Google源码
  7. Android开发技巧——Camera拍照功能
  8. openssl android编译
  9. Android的DDMS中的Threads的各个字段的含
  10. 对于各种分辨率手机的测试学习