- 浏览: 533228 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
效果图:
[img]
[/img]
工程结构图:
[img]
[/img]
MainActivity:
LotteryView:
LotteryGbox:
LotteryComMethod:
LotteryBox:
[img]
[/img]
工程结构图:
[img]
[/img]
MainActivity:
package com.zzl.shuangseqiu; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.LinearLayout; public class MainActivity extends Activity implements LotteryComMethod, OnClickListener { /** * n 代表有几个选区,比如双色球,有红蓝两个选区,暂时未用到 s1代表第一个选区有几个数字, s2代表第二个选区有几个数字, * m1代表第一个选区至少选几个 m2代表第二个选区至少选几个 redlist用于存储选区1的球 bluelist用于存储选区2的球 * type表示了玩法,单注,复试,胆拖 */ private int n = 2; private LotteryBox[] lb; private LinearLayout ball; private int[] s = { 33, 16 }, m = { 6, 1 }, maxBall; private ArrayList<ArrayList<LotteryView>> ballList = new ArrayList<ArrayList<LotteryView>>(); private String[] name = {"1","2","3","4","5","6","7","8","9","10"}; boolean startZero = true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ball = (LinearLayout) findViewById(R.id.ball); addBall(); } /** * 添加球 */ public void addBall() { lb = new LotteryBox[n]; for (int i = 0; i < n; i++) { lb[i] = new LotteryBox(this, null, "选择" + name[i]); lb[i].setPadding(10, 0, 0, 0); for (int j = 0; j < (startZero ? (s[i] + 1) : s[i]); j++) { LotteryView lv = new LotteryView(this, this, null, startZero ? j : j + 1, m[i]); lb[i].addBall(lv); } ball.addView(lb[i]); } } @Override public boolean check(LotteryView lv, boolean is) { // TODO Auto-generated method stub return false; } @Override public int checkMulti() { // TODO Auto-generated method stub return 0; } @Override public void clear() { // TODO Auto-generated method stub } @Override public int getDanTuoTotal() { // TODO Auto-generated method stub return 0; } @Override public int getFuShiTotal() { // TODO Auto-generated method stub return 0; } @Override public int getType() { // TODO Auto-generated method stub return 0; } @Override public void refesh() { // TODO Auto-generated method stub } @Override public void setType(int type) { // TODO Auto-generated method stub } @Override public void onClick(View arg0) { // TODO Auto-generated method stub } }
LotteryView:
/** * 彩票球类 */ package com.zzl.shuangseqiu; import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.View; import android.widget.Button; public class LotteryView extends Button { /** * checked,unchecked,checned_dan分别为未选中,选中,胆拖状态 * single,fu_shi,dan_tuo分别为单注,复式,胆拖玩法 * status记录了该球的状态 * num记录了该球的号码 */ public final static int CHECKED = 0, UNCHECKED = 1, CHECKED_DAN = 2; public final static int SINGLE = 3, FU_SHI = 4, DAN_TUO = 5; private int status = UNCHECKED; private int num = -1; private boolean isdan = true; public boolean isIsdan() { return isdan; } public void setIsdan(boolean isdan) { this.isdan = isdan; } public LotteryView(final Context c,final LotteryComMethod context, AttributeSet attrs, int num,int max) { super(c, attrs); setBackgroundResource(R.drawable.white_ball); this.setNum(num); setPadding(0, 0, 0, 0); setText(String.valueOf(num)); setWidth(BitmapFactory.decodeResource(getResources(), R.drawable.white_ball).getWidth()); setHeight(BitmapFactory.decodeResource(getResources(), R.drawable.white_ball).getHeight()); setOnClickListener(new OnClickListener() { /** * 当球被点击时,监听状态,根据球当前的状态进行变化 未选中->选中 ->胆拖 * 并更新玩法状态 * 若第一次进入新状态,进行提示 */ public void onClick(View v) { if (status == CHECKED) { status = CHECKED_DAN; setBackgroundResource(R.drawable.twice_click); } else if (status == UNCHECKED && isdan) { status = CHECKED; setBackgroundResource(R.drawable.once_click); } else if(status == UNCHECKED && !isdan){ status = CHECKED_DAN; setBackgroundResource(R.drawable.twice_click); }else if (status == CHECKED_DAN) { status = UNCHECKED; setBackgroundResource(R.drawable.white_ball); } int ty=context.checkMulti(); context.check((LotteryView) v,true); context.setType(ty); context.refesh(); } }); } public void setStatus(int status) { if(status == UNCHECKED){ setBackgroundResource(R.drawable.white_ball); }else if(status == CHECKED){ setBackgroundResource(R.drawable.once_click); }else if(status == CHECKED_DAN){ setBackgroundResource(R.drawable.twice_click); } this.status = status; } public int getStatus() { return status; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); } public void setNum(int num) { this.num = num; } public int getNum() { return num; } public void reSet(){ status = UNCHECKED; setBackgroundResource(R.drawable.white_ball); } public void reSetFu() { status = CHECKED; setBackgroundResource(R.drawable.blue_ball); } }
LotteryGbox:
package com.zzl.shuangseqiu; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.LinearLayout; public class LotteryGbox extends LinearLayout { private LinearLayout ll; private Context c; public LotteryGbox(Context context, AttributeSet attrs) { super(context, attrs); c = context; setOrientation(LinearLayout.VERTICAL); } @Override public void addView(View child) { if (ll == null) { ll = new LinearLayout(c); ll.setBackgroundResource(R.drawable.ball_under); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); ll.addView(child); super.addView(ll); } else { if (ll.getChildCount() == 10) { ll = new LinearLayout(c); ll.setBackgroundResource(R.drawable.ball_under); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); ll.addView(child); super.addView(ll); } else { ll.addView(child); } } } }
LotteryComMethod:
/** * * 该接口实现了每个需要用到lotteryView需要调用的方法,这些方法会在lotteryView中进行回调 * */ package com.zzl.shuangseqiu; public interface LotteryComMethod { void setType(int type); int getType(); int getFuShiTotal(); int getDanTuoTotal(); boolean check(LotteryView lv,boolean is); void clear(); void refesh(); int checkMulti(); }
LotteryBox:
package com.zzl.shuangseqiu; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.widget.LinearLayout; import android.widget.TextView; public class LotteryBox extends LinearLayout { private TextView title; private LotteryGbox content; public LotteryBox(Context context, AttributeSet attrs,String title) { super(context, attrs); this.title=new TextView(context); this.title.setText(title); this.title.setTextColor(Color.BLACK); this.title.setPadding(10, 0, 10, 0); content=new LotteryGbox(context, attrs); content.setBackgroundColor(0xffffff); addView(this.title); addView(content); setOrientation(LinearLayout.VERTICAL); } public void addBall(LotteryView lv){ content.addView(lv); } }
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2004android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2044Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1552SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 781Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 737转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1008===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1683(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1430在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 978package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1246工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 997SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1222Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 794一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1162运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 899package com.zzl.tools; impor ...
相关推荐
"双色球布局"是一个特定的布局模式,它可能被用于彩票类应用或者数据分析展示,目的是使双色球数据排列得整齐、有序,同时也便于用户理解和操作。在本案例中,采用了GRID布局,这是一种现代且灵活的布局方式,适用于...
7. **响应式设计**:由于提到适用于网页和移动设计,所以程序需要具备响应式布局,能适应不同设备的屏幕尺寸,这通常通过CSS的媒体查询实现。 8. **性能优化**:对于大型抽奖活动,确保抽奖过程的高效性是必要的。...
总的来说,实现“安卓双色球滚动效果”需要掌握Android自定义View的绘制、动画以及事件处理等核心技能。这不仅能够提高开发者对Android系统底层机制的理解,还能为应用增添更多互动元素,提升用户体验。在实际开发中...
源码的具体实现可能包含以下组件: 1. **HTML结构**:HTML文件将包含抽奖界面的布局,包括按钮、球体容器和其他视觉元素。 2. **CSS样式**:CSS文件将定义界面的外观,包括球体的样式、动画效果以及界面的整体设计...
通过这款双色球随机软件,初学者可以学习到VB的基本语法、控件使用和事件驱动编程的概念,而对有经验的开发者来说,这也是一个快速实现特定功能的好例子。同时,了解如何使用随机数生成器和GUI设计,对其他类型的...
【双色球HTML5游戏源码】是一种基于Web技术实现的互动游戏,主要利用了HTML5的特性来创建一个模拟真实双色球彩票玩法的在线平台。HTML5是超文本标记语言HTML的第五个版本,它引入了许多新的功能和改进,使得在网页上...
- 使用Android Studio的布局工具,如XML布局文件,设计出直观、友好的用户界面。包括按钮、文本框、提示信息等元素,以展示双色球的选择过程。 - 考虑到无障碍性,需遵循Android的设计指南,确保应用对所有用户都...
在实现双色球小程序时,开发者可能会使用以下C#特性和技术: - **Random类**:用于生成随机数,模拟双色球号码的选取。C#中的`Random`类提供了多种方法来生成不同范围内的随机整数。 - **事件和委托**:为了在多...
在JavaScript中实现这个功能,主要涉及以下几个知识点: 1. **数组操作**:首先,我们需要创建一个包含1到33的红色球数组,然后通过随机选取和删除元素的方式确保生成的六个数字不重复。这涉及到`Array.prototype....
这些样式决定了页面的整体布局和视觉效果。 此外,`images`文件夹包含的图片资源可能用于装饰抽奖界面,如扭蛋机的背景图、奖品图标等,增强视觉吸引力。 最后,`js`文件夹中的脚本文件(如`script.js`)是整个...
在这款双色球软件中,C#被用来编写程序的核心逻辑,包括数据处理、算法实现以及用户界面交互。 Winform是.NET框架中的一个组件,用于创建桌面应用的用户界面。在“双色球终结者”中,Winform为用户提供了一个直观、...
双色球选号程序的实现通常涉及编程语言如Python、Java、C#等,开发者可能运用了随机数生成算法、数据统计分析方法以及图形用户界面(GUI)设计技术。对于用户而言,理解这些技术细节并不重要,关键在于如何利用这个...
总的来说,"双色球摇奖小工具源码"是一个结合了C#基础语法、随机数生成、数据结构(HashSet)、Windows Forms UI设计以及动画效果实现的综合案例。通过分析和实践这个项目,开发者可以深入理解C#编程,并锻炼其解决...
该软件应具备清晰、直观的布局,让用户能够轻松查看历史开奖记录,同时提供一个简单易用的界面来生成随机号码。这可能需要用到GUI(图形用户界面)库,如Windows上的WinForms或WPF,或者是跨平台的Qt或Tkinter。界面...
7. **响应式设计**:考虑到不同设备的屏幕尺寸,源码可能采用了媒体查询和流式布局,以确保游戏在不同设备上都能良好显示。 通过深入研究这个H5小游戏源码,开发者不仅可以学习到游戏开发的基本流程,还可以掌握...
在本彩票系统中,Django框架提供了模型(Model)来管理数据库结构,视图(View)处理用户请求并返回响应,模板(Template)则负责页面的布局和显示。 3. 源码分析: - 模型(Models.py):在这里,开发者定义了...
开发者需要考虑如何布局这些控件,以及它们的颜色、字体等视觉效果,以提供良好的用户体验。 6. **结果展示**:摇出的号码需要在界面上清晰地呈现给用户。这可能通过文本框或者列表视图实现,每个号码对应一行,...
4. 用户界面设计,包括控件布局、事件处理等。 5. 错误处理和异常安全编程。 六、项目开发深度剖析 作者王维玉深入剖析了开发过程中可能遇到的问题和解决策略,如性能优化、内存管理、多线程编程等,帮助读者提高...
易语言支持窗口程序的开发,提供控件布局、事件处理等功能,可以创建各种交互式的界面。 6. **定时任务**:为了实时获取新的双色球数据,程序可能包含定时器组件,每隔一段时间自动更新数据。易语言的定时器事件...
【jQuery双色球随机选号器】是一款基于jQuery编写的代码示例,它为用户提供了一个功能完善的双色球彩票号码生成器。这个项目的核心在于利用jQuery的灵活性和强大的DOM操作能力,来实现号码的随机选取和展示效果。...