请选择 进入手机版 | 继续访问电脑版

android简便的活动转盘实现

[复制链接]
为你演绎 发表于 2021-1-1 17:46:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
页面

  1. public class CircleTurntableActivity extends AppCompatActivity {    private Animation mStartAnimation;    private ImageView mLuckyTurntable;    private boolean   isRunning;    private boolean mIsLucky = false;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_circle_turntable);        mLuckyTurntable = (ImageView) findViewById(R.id.id_lucky_turntable);        ImageView mStartBtn = (ImageView) findViewById(R.id.id_start_btn);        mStartBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (!isRunning) {                    isRunning = true;                    mIsLucky = !mIsLucky;                    startAnimation();                }            }        });    }    /**     * 开启动画     * 5秒旋转5圈+中奖所在位置角度     */    private void startAnimation() {        float toDegree;//竣事角度(以实际转盘图为准计算角度)        if (mIsLucky) {            toDegree = 360 * 5 + 30f;        } else {            toDegree = 360 * 5 + 90f;        }        if (mStartAnimation != null) {            mStartAnimation.reset();        }        // 按中心点旋转 toDegree度        // 参数:旋转的开始角度、旋转的竣事角度、X轴的伸缩模式、X坐标的伸缩值、Y轴的伸缩模式、Y坐标的伸缩值        mStartAnimation = new RotateAnimation(0, toDegree, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);        mStartAnimation.setDuration(5000); // 设置旋转时间        mStartAnimation.setRepeatCount(0); // 设置重复次数        mStartAnimation.setFillAfter(true);// 动画执行完后是否停留在执行完的状态        mStartAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); // 动画播放的速度        mStartAnimation.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {            }            @Override            public void onAnimationEnd(Animation animation) {                isRunning = false;                Toast.makeText(CircleTurntableActivity.this, mIsLucky ? "精美礼物" : "谢谢到场", Toast.LENGTH_SHORT).show();            }            @Override            public void onAnimationRepeat(Animation animation) {            }        });        mLuckyTurntable.startAnimation(mStartAnimation);    }}
复制代码
页面布局

  1.         
复制代码


来源:https://blog.csdn.net/qq_38744901/article/details/111987466
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )