一、点击Icon,水平翻转360°后再打开应用效果:

class MyOnClickListener implements View.OnClickListener {    @Override    public void onClick(View v) {        switch (v.getId()) {        case R.id.layoutMap:            openAfterRotate(v);            break;        case R.id.layoutMusic:            openAfterRotate(v);            break;        case R.id.layoutTongting:            openAfterRotate(v);            break;        default:            break;        }    }}
/** * 卡片水平旋转360度后再打开应用 *  * @param view */private void openAfterRotate(final View view) {    final int[] degreeRotate = { 0 };    new Thread(new Runnable() {        @Override        public void run() {            for (int i = 1; i <= 36; i++) {                try {                    Thread.sleep(10);                } catch (InterruptedException e) {                    e.printStackTrace();                }                degreeRotate[0] = i * 10;                mainHandler.post(new Runnable() {                    @Override                    public void run() {                        view.setRotationY(degreeRotate[0]);                    }                });                if (i == 36) {                    switch (view.getId()) {                    case R.id.layoutMusic:                        OpenUtil.openModule(MainActivity.this,                                MODULE_TYPE.MUSIC);                        break;                    case R.id.layoutTongting:                        OpenUtil.openModule(MainActivity.this,                                MODULE_TYPE.TONG_TING);                        break;                    case R.id.layoutMap:                        OpenUtil.openModule(MainActivity.this,                                MODULE_TYPE.NAVI_GAODE_CAR_MIRROR);                        break;                    default:                        break;                    }                }            }        }    }).start();}

二、ViewPager翻页过程中渐进压缩特效:

viewPager.setOnSwipeListener(new TransitionViewPager.OnSwipeListener() {    @Override    public void onSwipe(int positionOffset) {        setPageRotationByOffset(positionOffset);    }});
private void setPageRotationByOffset(int positionOffset) {    int degree = (int) (45 * ((float) positionOffset / 1280));    if (degree != nowDegree) {        if (degree == 0 && Math.abs(nowDegree - degree) > 20) {            new Thread(new Runnable() {                @Override                public void run() {                    for (int i = nowDegree; i > 0; i--) {                        try {                            Thread.sleep(5);                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                        mainHandler.post(new Runnable() {                            @Override                            public void run() {                                setPageRotationByDegree(--nowDegree);                            }                        });                    }                }            }).start();        } else            setPageRotationByDegree(degree);    }}private int nowDegree = 0;private void setPageRotationByDegree(int degree) {    MyLog.i("setPageRotationByOffset.DEGREE:" + degree);    if (degree < 0)        degree = 0;    nowDegree = degree;    if (isLoadA) {        layoutTongting.setRotationX((int) (degree * 3.0));        layoutMap.setRotationX((int) (degree * 2.5));        layoutRecord.setRotationX((int) (degree * 2.0));        layoutPhone.setRotationX((int) (degree * 1.5));    }    if (isLoadB) {        layoutEDog.setRotationX((int) (degree * 0.8));        layoutXimalaya.setRotationX((int) (degree * 0.7));        layoutFMTransmit.setRotationX((int) (degree * 0.6));        layoutYiKa.setRotationX((int) (degree * 0.5));        layoutReplay.setRotationX((int) (degree * 0.4));        layoutMoreApp.setRotationX((int) (degree * 0.3));    }}

更多相关文章

  1. Android(安卓)P系统输出图像镜像翻转实现
  2. 2011.10.13(4)——— android android:layout_weight
  3. Android中自定义水平的ProgressBar
  4. Android新姿势:3D翻转效果原理
  5. Android中正确自适应屏幕翻转
  6. Android踩坑日记:自定义水平和圆形ProgressBar样式
  7. ScrollView常用属性汇总
  8. 使用android中drawline函数无法绘制水平线的解决办法
  9. Android(安卓)LinearLayout线性布局(上下左右 正中间)示例

随机推荐

  1. centos7下的lnmp环境安装
  2. phpmyadmin的乱码问题
  3. 用PHP计算字符串中元音的简单方法?
  4. 我无法定义我的错误
  5. 节点js / Express替换LAMP
  6. 如何使用phpunit测试用例测试ajax调用?
  7. 在数据库中存储行数或动态获取
  8. 3-腿和2腿的auth有什么区别?
  9. 网站优化之PHPCMS如何开启伪静态
  10. 如何在php中的谷歌分析中显示搜索概述