利用Rotate3dAnimation来实现3D无限轮询超炫酷效果

800 阅读2分钟

由于本人第一次写博客,写的不好请多多指正,谢谢。

以前看到过到一篇关于Rotate3dAnimation的文章。然后自己手痒写了一个3D轮询的效果,并且放到项目中表现良好,分享给小伙伴吧!直接看效果,使用起来非常简单。我录得这个GIF有点问题哈,首尾连接的问题。

首页需要引进我的一个依赖包 implementation 'com.gitee.duanpingwei1:Mylibs:1.1.1'

然后在布局文件里面添加一个相对布局


1<RelativeLayout
2    android:layout_centerInParent="true"
3    android:id="@+id/sand_Layout"
4    android:layout_width="202dp"
5    android:layout_height="273dp"/>

主要的代码

public class MainActivity extends AppCompatActivity {

private RelativeLayout sand_Layout;
private ArrayList<String> integers;
String icon1 = "***";//地址自己修改哦
String icon2 = "***";
String icon3 = "***";
MyAnimation myAnimation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    sand_Layout =findViewById(R.id.sand_Layout);
    integers = new ArrayList<>();
    integers.add(icon1);
    integers.add(icon2);
    integers.add(icon3);
   //第一个参数是我们的相对布局 第二个是旋转的间隔
    myAnimation =new MyAnimation(sand_Layout,2000);
    //1和0 分别代表横着和竖着翻
    myAnimation.addReLayout(MainActivity.this,integers,1,0);
    myAnimation.setOnImgClickListener(new MyAnimation.OnImgClickListener() {
        @Override
        public void onClick(int position, View view) {

        }
    });

}

@Override
protected void onDestroy() {
    super.onDestroy();
    myAnimation.cancelRotate();
}

}

记得调用myAnimation.cancelRotate();来避免内存泄漏
myAnimation.setOnImgClickListener是一个点击监听,小伙伴们可以自由发挥。

特别注意的是要开放网络权限和引进glide 我的是 implementation 'com.github.bumptech.glide:glide:4.8.0' 不然图片会显示不出来