iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android简单实现圆盘抽奖界面
  • 535
分享到

Android简单实现圆盘抽奖界面

界面Android 2022-06-06 09:06:22 535人浏览 薄情痞子
摘要

闲来无事,做了一个简单的抽奖转盘的ui实现,供大家参考 package com.microchange.lucky; import Android.content.Con

闲来无事,做了一个简单的抽奖转盘的ui实现,供大家参考


package com.microchange.lucky; 
import Android.content.Context; 
import android.graphics.canvas; 
import android.graphics.Color; 
import android.graphics.Paint; 
import android.graphics.RectF; 
import android.util.AttributeSet; 
import android.util.Log; 
import android.view.MotionEvent; 
import android.view.View; 
public class HalfCircle extends View { 
 private Paint paint; 
 private RectF oval; 
 private float startAngle; 
 private float sweepSpeed; 
 private float sweepAngle; 
 boolean useCenter; 
 int count;// 等份 
 @Override 
 protected void onDraw(Canvas canvas) { 
  setSweepAngle(count); 
  while (startAngle <= 360) { 
   if (startAngle % (count*3) == 0) { 
    paint.setColor(Color.BLUE); 
   } else if (startAngle % (count*2) == 0){ 
    paint.setColor(Color.GREEN); 
   }else { 
    paint.setColor(Color.RED); 
   } 
   Log.e(""+startAngle, paint.getColor()+""); 
   canvas.drawArc(oval, startAngle, sweepAngle, useCenter, paint); 
   startAngle += count; 
  } 
  float centerX = oval.centerX(); 
  float centerY = oval.centerY(); 
  paint.setColor(Color.WHITE); 
//  paint.setStrokeWidth(5); 
//  paint.setStyle(Paint.Style.STROKE); //设置空心 
  paint.setAntiAlias(true); //消除锯齿 
  canvas.drawCircle(centerX, centerY, 50, paint); 
  String text = "奖"; 
  paint.setTextSize(20 * getContext().getResources().getDisplayMetrics().density); 
  float measureText = paint.measureText(text); 
  float textY = paint.descent() - paint.ascent(); 
  paint.setColor(Color.RED); 
//  canvas.drawLine(0, centerY, 480, centerY, paint); 
//  canvas.drawText(text, centerX-(measureText/2), centerY, paint); 
  canvas.drawText(text, centerX-(measureText/2), centerY+(textY/4), paint); 
 } 
 private void init() { 
  paint = new Paint(); 
  paint.setColor(Color.BLUE); 
  paint.setAntiAlias(true); 
  paint.setStrokeWidth(5); 
 } 
 @Override 
 public boolean onTouchEvent(MotionEvent event) { 
  return super.onTouchEvent(event); 
 } 
  
 public int getCount() { 
  return count; 
 } 
  
 public void setCount(int count) { 
  this.count = 360 / count; 
 } 
 public Paint getPaint() { 
  return paint; 
 } 
 public void setPaint(Paint paint) { 
  this.paint = paint; 
 } 
 public RectF getOval() { 
  return oval; 
 } 
 public void setOval(RectF oval) { 
  this.oval = oval; 
 } 
 public float getStartAngle() { 
  return startAngle; 
 } 
 public void setStartAngle(float startAngle) { 
  this.startAngle = startAngle; 
 } 
 public float getSweepSpeed() { 
  return sweepSpeed; 
 } 
 public void setSweepSpeed(float sweepSpeed) { 
  this.sweepSpeed = sweepSpeed; 
 } 
 public float getSweepAngle() { 
  return sweepAngle; 
 } 
 public void setSweepAngle(float sweepAngle) { 
  this.sweepAngle = sweepAngle; 
 } 
 public boolean isUseCenter() { 
  return useCenter; 
 } 
 public void setUseCenter(boolean useCenter) { 
  this.useCenter = useCenter; 
 } 
 public HalfCircle(Context context, AttributeSet attrs, int defStyle) { 
  super(context, attrs, defStyle); 
  init(); 
 } 
 public HalfCircle(Context context, AttributeSet attrs) { 
  this(context, attrs, 0); 
 } 
 public HalfCircle(Context context) { 
  this(context, null, 0); 
 } 
} 

package com.microchange.lucky; 
import android.app.Activity; 
import android.graphics.RectF; 
import android.os.Bundle; 
import android.view.animation.AccelerateInterpolator; 
import android.view.animation.Animation; 
import android.view.animation.DecelerateInterpolator; 
import android.view.animation.Interpolator; 
import android.view.animation.RotateAnimation; 
public class MainActivity extends Activity { 
 RectF rect; 
 int radius = 300; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  HalfCircle circle = new HalfCircle(getApplicationContext()); 
  circle.setOval(getRectF()); 
//  circle.setStartAngle(90); 
  circle.setUseCenter(true); 
  circle.setCount(9); 
  Animation animation = new RotateAnimation(0, 135*10, getRectF().centerX(), getRectF().centerY()); 
  animation.setDuration(5000); 
  animation.setInterpolator(new DecelerateInterpolator()); 
//  animation.setRepeatCount(-1); 
  circle.setAnimation(animation ); 
//  animation.start(); 
  setContentView(circle); 
 } 
 public RectF getRectF(){ 
  if (rect==null){ 
//   getWindow().getDecorView().getWidth() 
   int width = getResources().getDisplayMetrics().widthPixels; 
   int height = getResources().getDisplayMetrics().heightPixels; 
   int top = (height - radius)/2; 
   int left = (width - radius)/2; 
   rect = new RectF(left, top, left+radius, top+radius); 
  } 
  return rect; 
 } 
} 

希望本文所述对大家学习Android程序设计有所帮助。

您可能感兴趣的文章:Android自定义View实现QQ运动积分转盘抽奖功能Android使用surfaceView自定义抽奖大转盘Android中利用SurfaceView制作抽奖转盘的全流程攻略Android抽奖轮盘的制作方法Android打造流畅九宫格抽奖活动效果Android App中实现简单的刮刮卡抽奖效果的实例详解Android实现抽奖转盘实例代码jsHTML5实现手机端刮刮卡抽奖效果完美兼容android/iOSAndroid自定义View实现抽奖转盘


--结束END--

本文标题: Android简单实现圆盘抽奖界面

本文链接: https://www.lsjlt.com/news/25946.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现简单转盘抽奖功能
    本文实例为大家分享了vue实现简单转盘抽奖的具体代码,供大家参考,具体内容如下 样式请大家忽略(自己调),主要看JS代码实现,点击按钮后调用start方法,判断是否在转动状态,如果...
    99+
    2024-04-02
  • vue怎么实现简单转盘抽奖功能
    本篇内容介绍了“vue怎么实现简单转盘抽奖功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!样式请大家忽略(自己调),主要看JS代码实现,点...
    99+
    2023-06-29
  • JavaScript实现简单抽奖系统
    本文实例为大家分享了JavaScript实现简单抽奖系统的具体代码,供大家参考,具体内容如下 模拟实现抽奖系统 前端使用JavaScript代码实现抽奖系统,代码如下: 样式代码: ...
    99+
    2024-04-02
  • JS实现简单九宫格抽奖
    用JavaScript写一个九宫格的抽奖盘,供大家参考,具体内容如下 点击中间的块,选中奖品的亮块会在边缘的8个块循环; 选中后,弹出选中的内容; 代码参考: HTML文件: <...
    99+
    2024-04-02
  • js实现简单抽奖小功能
    本文实例为大家分享了js实现简单抽奖小功能的具体代码,供大家参考,具体内容如下 1.场景: 点击按钮开始随机抽取奖品,当停止那刻停留在大屏幕的是抽中的奖品(“谢谢”即为没奖)。 2....
    99+
    2024-04-02
  • js实现简单的抽奖系统
    一个用js编写的简单的抽奖系统,供大家参考,具体内容如下 效果图如图所示:字节带闪动,点击开始,可进行抽奖,并且按钮变为结束按钮,然后点击结束按钮,可以结束,并抽奖成功。 代码如下...
    99+
    2024-04-02
  • JavaScript怎么实现简单抽奖系统
    这篇文章主要讲解了“JavaScript怎么实现简单抽奖系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么实现简单抽奖系统”吧!模拟实现抽奖系统前端使用JavaScr...
    99+
    2023-06-29
  • JS实现简单的九宫格抽奖
    本文实例为大家分享了JS实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下 结构 <body>     <div id="fa">         &l...
    99+
    2024-04-02
  • C语言实现简单的抽奖系统
    本文实例为大家分享了C语言实现简单的抽奖系统的具体代码,供大家参考,具体内容如下 效果图 #include<stdio.h> #include<string.h...
    99+
    2024-04-02
  • JS如何实现简单九宫格抽奖
    这篇文章主要介绍了JS如何实现简单九宫格抽奖的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS如何实现简单九宫格抽奖文章都会有所收获,下面我们一起来看看吧。HTML文件:<body><div&...
    99+
    2023-07-02
  • VUE实现大转盘抽奖
    目录UI初始参考各值参考图方案分析-参数配置核心思路:关于旋转位置参数配置实现逻辑组件使用抽奖效果结语UI 老规矩,先看下静态UI,以便于有个图像概念 初始参考各值参考图 方案...
    99+
    2024-04-02
  • js实现简单圆盘时钟
    本文实例为大家分享了js实现简单圆盘时钟的具体代码,供大家参考,具体内容如下 预览图: 代码: css: <style> .disc { ...
    99+
    2024-04-02
  • 怎么用js实现简单的抽奖系统
    今天小编给大家分享一下怎么用js实现简单的抽奖系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图如图所示:字节带闪动,...
    99+
    2023-06-29
  • JS如何实现简单的九宫格抽奖
    本篇内容介绍了“JS如何实现简单的九宫格抽奖”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!结构<body>  ...
    99+
    2023-07-02
  • Android实现九宫格抽奖
    本文实例为大家分享了Android实现九宫格抽奖的具体代码,供大家参考,具体内容如下 package cq.cake.luckdraw; import android.graph...
    99+
    2024-04-02
  • java简单随机抽奖功能怎么实现
    实现简单的随机抽奖功能可以使用Java的Random类来生成随机数。下面是一个简单的实现示例:```javaimport java....
    99+
    2023-08-31
    java
  • js实现转盘抽奖功能
    本文实例为大家分享了js实现转盘抽奖功能的具体代码,供大家参考,具体内容如下 效果:点击抽奖按钮,转盘开始旋转数圈后停止 示例: 抽奖html代码: <!DOCTYPE htm...
    99+
    2024-04-02
  • 用Python实现一个简单的抽奖小程序
    目录写在前面 实现结果 1 数据拉取2 数据清洗、去重3 中奖数据抽取python 相关知识点总结写在前面  因为粉丝福利,所以想自己写一个抽...
    99+
    2023-05-12
    python抽奖系统 python随机抽奖 python抽奖游戏
  • 微信小程序实现简单九宫格抽奖
    本文实例为大家分享了微信小程序实现简单九宫格抽奖的具体代码,供大家参考,具体内容如下 废话不多说,先上样板图 代码就先wxml文件: <view id="container"...
    99+
    2024-04-02
  • vue实现大转盘抽奖功能
    本文实例为大家分享了vue实现大转盘抽奖的具体代码,供大家参考,具体内容如下 效果图如下 中奖提示 代码如下 <template>   <div class="...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作