android实现简单的活动转盘

本文实例为大家分享了android实现简单活动转盘的具体代码,供大家参考,具体内容如下

页面

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);

}

}

页面布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 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">

<!--转盘-->

<ImageView

android:id="@+id/id_lucky_turntable"

android:layout_width="613.33px"

android:layout_height="613.33px"

android:layout_centerInParent="true"

android:src="@mipmap/lucky_turntable_bg" />

<!--指针-->

<ImageView

android:paddingBottom="40px"

android:id="@+id/id_start_btn"

android:layout_width="266.66px"

android:layout_height="266.66px"

android:layout_centerInParent="true"

android:src="@mipmap/lucky_start_icon" />

</RelativeLayout>

效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 android实现简单的活动转盘 的全部内容, 来源链接: utcz.com/p/244001.html

回到顶部