<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>会说话的狗</title>
	<atom:link href="http://www.quou.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.quou.cn</link>
	<description>谢谢你</description>
	<lastBuildDate>Sun, 13 May 2012 16:04:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>二零一二年五月十三日</title>
		<link>http://www.quou.cn/archives/997</link>
		<comments>http://www.quou.cn/archives/997#comments</comments>
		<pubDate>Sun, 13 May 2012 15:29:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[会说话的狗]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=997</guid>
		<description><![CDATA[       博客记录琐事，内容可能比较恶心，请选择阅读，恳求不要传阅。        这个周花了两天实现想做一个边下载边播放的android应用，虽然最终一无所成，但我还是说一下过程吧，实现边下载边播放理论上应该是没有问题，下载了两个demo，也了解预加载一个data文件播放，然后再开启一个线程默默下载，直到第一个文件播放完成&#8230;循环。xing说以前做过，可能存在卡的现象，能理解，在播放器load文件需要时间，而这个时间几乎是没有办法节约出来。       为什么会一无所成呢，这里就不得不说一下万恶的迅雷了，其实也怪不了人家&#8230;..在网上拷了个mp4文件播放，发现conn.getContentLength的时候返回了-1，最终没有搞定原因，应该是服务器不支持http下载，那还有什么办法可以下载呢，我对这个盲目的很，再者就是遇到网络死链，即链接已失效，但迅雷还能下载资源的链接，就搞不定，所以一头扎进了“迅雷 协议”、“迅雷 候选资源”、“迅雷 不为人知 api”&#8230;..两天中有80%的时间是在搜索中度过的，中国人都太懒了，我也是，如果一开始就自己抓包，解密协议可能不成功，至少也有个大概了，哎&#8230;.       上周几乎没做多少事情，就写了一个ppt，ppt内容还是比较充足，但是因为是在公司写的，而且被加密了，估计是分享不出来了。然后hait让我研究一下comet技术，最好用erlang写一个响应服务，这个正在着手弄，现在有点概念了，等上班跟他们在确认一下思路就开始动工。还有上周被lulu收编了，其实不想这样，因为讨厌服从，讨厌被要求。前几天我提了一下手机客户端的几点改进（1、记住密码：不在客户端记录密码原文或密码的md5值等，采取向服务器申请一个唯一标识，每次用户登录更好一次标识，N个时间后标识过期，要求玩家重新登录再分配；2、赛事列表页面：希望加入socket消息实时通知赛事变化，毕竟手机不比pc，轮询是不现实的；3、在登录后返回用户头像地址：登录后再发送一次http请求获取用户头像地址没有必要）；这几点都是分批提出的，lulu说让我提一个文档，我不想，不想把时间花费在这些无用的事情上，如果是在我们组，肯定提一点就干掉一点（如果可行），现在我也不在客户端上有想法了，想了会很麻烦，这就是程序员。       最近吃多一点点就会肚子不舒服，那天去医院检查了一下，什么都没有，还花费了大半百，总感觉现代医院，应该抽点血啥都能检查出来，结果科技还没有我想象的那么前沿，还要留点“米共”化验才行。       昨晚做了萝卜排骨宴，今天早上起来吧剩下的一点吃完了，中午石头请吃饭，很不想去，之前也有几次这种大型饭局都不想参与，导致最后落得个“耍大牌”的称号，还好我性格一向比较无耻，你们说是就是了吧。记得去年回家，家亲戚都来我们家聚餐，我实在是不知道应该说点什么最后吃了一顿很郁闷的饭。今天中午本来也是极其不打算去，但碍于石头诚意，最后还是去了，结果因为饭桌玩游戏无视现场被鄙视，我要说点什么呢，明知我就这副德行，何必在意呢。我喜欢几个趣味相投的朋友吃饭，可以真实的聊，不会那么飘那么多约束，不会跟某人聊的时候忽略了别的人，而且不太喜欢吃外面的事物，所以尽量不参与饭局。对那些个对我德行受伤的人和事在此道歉了，知不知晓也是这样。]]></description>
			<content:encoded><![CDATA[<p>       <span style="color: #ff0000;">博客记录琐事，内容可能比较恶心，请选择阅读，恳求不要传阅。</span></p>
<p>       这个周花了两天实现想做一个边下载边播放的android应用，虽然最终一无所成，但我还是说一下过程吧，实现边下载边播放理论上应该是没有问题，下载了两个demo，也了解预加载一个data文件播放，然后再开启一个线程默默下载，直到第一个文件播放完成&#8230;循环。xing说以前做过，可能存在卡的现象，能理解，在播放器load文件需要时间，而这个时间几乎是没有办法节约出来。</p>
<p>      为什么会一无所成呢，这里就不得不说一下万恶的迅雷了，其实也怪不了人家&#8230;..在网上拷了个mp4文件播放，发现conn.getContentLength的时候返回了-1，最终没有搞定原因，应该是服务器不支持http下载，那还有什么办法可以下载呢，我对这个盲目的很，再者就是遇到网络死链，即链接已失效，但迅雷还能下载资源的链接，就搞不定，所以一头扎进了“迅雷 协议”、“迅雷 候选资源”、“迅雷 不为人知 api”&#8230;..两天中有80%的时间是在搜索中度过的，中国人都太懒了，我也是，如果一开始就自己抓包，解密协议可能不成功，至少也有个大概了，哎&#8230;.</p>
<p>      上周几乎没做多少事情，就写了一个ppt，ppt内容还是比较充足，但是因为是在公司写的，而且被加密了，估计是分享不出来了。然后hait让我研究一下comet技术，最好用erlang写一个响应服务，这个正在着手弄，现在有点概念了，等上班跟他们在确认一下思路就开始动工。还有上周被lulu收编了，其实不想这样，因为讨厌服从，讨厌被要求。前几天我提了一下手机客户端的几点改进（1、记住密码：不在客户端记录密码原文或密码的md5值等，采取向服务器申请一个唯一标识，每次用户登录更好一次标识，N个时间后标识过期，要求玩家重新登录再分配；2、赛事列表页面：希望加入socket消息实时通知赛事变化，毕竟手机不比pc，轮询是不现实的；3、在登录后返回用户头像地址：登录后再发送一次http请求获取用户头像地址没有必要）；这几点都是分批提出的，lulu说让我提一个文档，我不想，不想把时间花费在这些无用的事情上，如果是在我们组，肯定提一点就干掉一点（如果可行），现在我也不在客户端上有想法了，想了会很麻烦，这就是程序员。</p>
<p>      最近吃多一点点就会肚子不舒服，那天去医院检查了一下，什么都没有，还花费了大半百，总感觉现代医院，应该抽点血啥都能检查出来，结果科技还没有我想象的那么前沿，还要留点“米共”化验才行。</p>
<p>      昨晚做了萝卜排骨宴，今天早上起来吧剩下的一点吃完了，中午石头请吃饭，很不想去，之前也有几次这种大型饭局都不想参与，导致最后落得个“耍大牌”的称号，还好我性格一向比较无耻，你们说是就是了吧。记得去年回家，家亲戚都来我们家聚餐，我实在是不知道应该说点什么最后吃了一顿很郁闷的饭。今天中午本来也是极其不打算去，但碍于石头诚意，最后还是去了，结果因为饭桌玩游戏无视现场被鄙视，我要说点什么呢，明知我就这副德行，何必在意呢。我喜欢几个趣味相投的朋友吃饭，可以真实的聊，不会那么飘那么多约束，不会跟某人聊的时候忽略了别的人，而且不太喜欢吃外面的事物，所以尽量不参与饭局。对那些个对我德行受伤的人和事在此道歉了，知不知晓也是这样。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/997/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如果说声谢谢就够了</title>
		<link>http://www.quou.cn/archives/981</link>
		<comments>http://www.quou.cn/archives/981#comments</comments>
		<pubDate>Wed, 02 May 2012 14:21:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[杰伦专区]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=981</guid>
		<description><![CDATA[博客记录琐事，内容很私人，看就罢了，恳求不要传阅。 &#160;&#160;&#160;&#160;&#160;&#160;谢谢你们带我做技术，谢谢你们让我学会写代码，谢谢你们教我除了代码还有做人的道理&#8230; &#160;&#160;&#160;&#160;&#160;&#160;从2010年7月到现在已经来了快两年了，两年来我过的很积极，几乎没有过失落或无所成，很多时候我都不在乎是否周末，不在乎是否18点钟了。我一直说这工作后（没什么准备谈这辈子）最大的幸运就是遇到了wangsl和xing俩位老大和hait的帮助了，记得好像以前也写过一些这样的博客，不知道还在不在，中间因为一些事情删除了一部分，但有的事还是要写，有的人还是要说，喜欢传的就传吧。 &#160;&#160;&#160;&#160;&#160;&#160;从进公司开始没感觉什么特别，后来进入三个月的学习期，王老大要求很严格，而且给我们布置的题目也很有含金量，我也很用心做，这为我后来在php方面的提高攒了不少基础，第一个项目就是做竞拍，最大的成就莫过于把之前学到的一套mvc使用到项目中，而且后来开始做邮件系统接触服务开发，鬼使神差认识了hait，我记不得到底为什么认识了hait，但后来他演示了很多服务开发的事情，记得最深的是在我座位上用了几行命令启了一个ice storm的date demo，感觉好神奇，好向往，后来也就一门心思的想写服务程序，第一个程序就是邮件发送系统，前台加后台。写完就2010年底了，这一年多感觉做的还不错，但考核只得了40-70，老大说你们新来的这批都这个级，恩，理解，接下来我们组的一哥们辞职去了腾讯，接下来2011年的优秀员工给了我和shengw（俩应届生）。 &#160;&#160;&#160;&#160;&#160;&#160;业开待的时间里没有什么值得回忆的，除了我们组的几个人（lijingai、zhengxuze、huanglinsheng、搞忘了一个），事隔一年想起种种还是不由得&#8230;11年3月份正式被hait招聘到系统平台，开始我认识第二个我人生最重要的人-xing，11年前就几天给我布置了第一个应用，开发sms短信网关，一点感念都没有，又到年底了，准备了一些基础，过了个年开始sms网关开发，也开始认识到应用开发的基本过程，开始认识到变量都能保存状态，这是很多从前端转后台同学分不清楚的地方。接下来写了好几个应用，我也很愿意主动承担分配的任务，每个应用都学到很多，我也写了总结，后来zhaok离开了公司，我很痛恨我的任性和自以为是，如果我不进系平，如果我不好强，如果我不接那个sso项目，是不是可以&#8230;。星哥为人很和善，对我们几个都很照顾，遇到问题总是平心静气的告诉我们，上次数据库切换，那天晚上因为我提前修改了配置，结果数据库重连超过次数锁死了数据库，第二天技研的神棍就给我订了一个4级事故，下午没心情上班，请假半天回家睡觉。后来hait和xing知道了打电话开导，xing还帮忙受了这次事故，这真心不是我想要的。 &#160;&#160;&#160;&#160;&#160;&#160;去年年底公司打算做德州扑克游戏，之前我建议xing申请负责，结果他因为种种原因拒绝了，当时我也说他不参加我也不会参加，最后我真的没有参与到德州的服务开发，在整个德州扑克设计期间我也花了很多时间跟他们讨论争辩，因为脾气不咋的，经常出现火爆场面。年后因为没有事情，xing找了一个实时监控的项目给我做，但因为花了很多时间做尝试，而且写的代码没有太多的技术含量，导致最后有点承受不了，然后我也给xing说了这件事情，这次事情我后悔不已，虽然后来我也道歉了，但还是一直很难放下，希望xing能原谅我的不是抬举和无知行为。接下来应用没开发完就开始做德州android版开发，大概花了7天时间完成了一个最简单可运行版本，xing也给了我很多支持和帮助，虽然不是android本身，但更让我难受：很多小琐碎他宁愿自己去写也不想让我停下android，我承认我确实盲目的不可收拾了，但这些事情还是能应付，至少也是个组长，还对亲自网关升级，还跟他们做联调，还加班等业开同学调试&#8230;真心麻烦你了 &#160;&#160;&#160;&#160;&#160;&#160;上次聊天说不想去龙岗，我也意识到一些，但总想至少也应该是7、8月以后的事情，没曾想会这么快，我真的适应不了，之前一直以来我都想没有什么我承受不起，我也过的很坦然，你不怕得罪人，今天你把我开了，明天换家公司照样工作，你再牛皮从行业把我封杀了，我换个行业一样站起来。我总是告诉自己，我知道这个社会的原则，知道做人的准则，最终肯定会被这个社会给同化，也会学会圆滑，也会学会打马虎眼，也会慈祥，也会忍让，也会学会合作&#8230;，但我只是不想学会的太快，我才工作两年。慢慢经过几次事情和hait说的一些话，也慢慢开始注意自己的一些行为，也开始学会一些表达方式，以后还要学会和团队一起成长，做事&#8230; &#160;&#160;&#160;&#160;&#160;&#160;我知道你会离开，但我不知道来的会这么快，谢谢你教会我的一切，只是我现在只能说谢谢&#8230;如果还有以后]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">博客记录琐事，内容很私人，看就罢了，恳求不要传阅。</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢谢你们带我做技术，谢谢你们让我学会写代码，谢谢你们教我除了代码还有做人的道理&#8230;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从2010年7月到现在已经来了快两年了，两年来我过的很积极，几乎没有过失落或无所成，很多时候我都不在乎是否周末，不在乎是否18点钟了。我一直说这工作后（没什么准备谈这辈子）最大的幸运就是遇到了wangsl和xing俩位老大和hait的帮助了，记得好像以前也写过一些这样的博客，不知道还在不在，中间因为一些事情删除了一部分，但有的事还是要写，有的人还是要说，喜欢传的就传吧。</p>
<p><img src="http://www.quou.cn/wp-content/uploads/2012/05/some_frinds.jpg" mce_src="http://www.quou.cn/wp-content/uploads/2012/05/some_frinds.jpg" alt="那些人，那些不能忘记的过去..." title="那些人，那些不能忘记的过去..." width="480" height="360" class="size-full wp-image-984" align="center" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;从进公司开始没感觉什么特别，后来进入三个月的学习期，王老大要求很严格，而且给我们布置的题目也很有含金量，我也很用心做，这为我后来在php方面的提高攒了不少基础，第一个项目就是做竞拍，最大的成就莫过于把之前学到的一套mvc使用到项目中，而且后来开始做邮件系统接触服务开发，鬼使神差认识了hait，我记不得到底为什么认识了hait，但后来他演示了很多服务开发的事情，记得最深的是在我座位上用了几行命令启了一个ice storm的date demo，感觉好神奇，好向往，后来也就一门心思的想写服务程序，第一个程序就是邮件发送系统，前台加后台。写完就2010年底了，这一年多感觉做的还不错，但考核只得了40-70，老大说你们新来的这批都这个级，恩，理解，接下来我们组的一哥们辞职去了腾讯，接下来2011年的优秀员工给了我和shengw（俩应届生）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;业开待的时间里没有什么值得回忆的，除了我们组的几个人（lijingai、zhengxuze、huanglinsheng、搞忘了一个），事隔一年想起种种还是不由得&#8230;11年3月份正式被hait招聘到系统平台，开始我认识第二个我人生最重要的人-xing，11年前就几天给我布置了第一个应用，开发sms短信网关，一点感念都没有，又到年底了，准备了一些基础，过了个年开始sms网关开发，也开始认识到应用开发的基本过程，开始认识到变量都能保存状态，这是很多从前端转后台同学分不清楚的地方。接下来写了好几个应用，我也很愿意主动承担分配的任务，每个应用都学到很多，我也写了总结，后来zhaok离开了公司，我很痛恨我的任性和自以为是，如果我不进系平，如果我不好强，如果我不接那个sso项目，是不是可以&#8230;。星哥为人很和善，对我们几个都很照顾，遇到问题总是平心静气的告诉我们，上次数据库切换，那天晚上因为我提前修改了配置，结果数据库重连超过次数锁死了数据库，第二天技研的神棍就给我订了一个4级事故，下午没心情上班，请假半天回家睡觉。后来hait和xing知道了打电话开导，xing还帮忙受了这次事故，这真心不是我想要的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;去年年底公司打算做德州扑克游戏，之前我建议xing申请负责，结果他因为种种原因拒绝了，当时我也说他不参加我也不会参加，最后我真的没有参与到德州的服务开发，在整个德州扑克设计期间我也花了很多时间跟他们讨论争辩，因为脾气不咋的，经常出现火爆场面。年后因为没有事情，xing找了一个实时监控的项目给我做，但因为花了很多时间做尝试，而且写的代码没有太多的技术含量，导致最后有点承受不了，然后我也给xing说了这件事情，这次事情我后悔不已，虽然后来我也道歉了，但还是一直很难放下，希望xing能原谅我的不是抬举和无知行为。接下来应用没开发完就开始做德州android版开发，大概花了7天时间完成了一个最简单可运行版本，xing也给了我很多支持和帮助，虽然不是android本身，但更让我难受：很多小琐碎他宁愿自己去写也不想让我停下android，我承认我确实盲目的不可收拾了，但这些事情还是能应付，至少也是个组长，还对亲自网关升级，还跟他们做联调，还加班等业开同学调试&#8230;真心麻烦你了</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上次聊天说不想去龙岗，我也意识到一些，但总想至少也应该是7、8月以后的事情，没曾想会这么快，我真的适应不了，之前一直以来我都想没有什么我承受不起，我也过的很坦然，你不怕得罪人，今天你把我开了，明天换家公司照样工作，你再牛皮从行业把我封杀了，我换个行业一样站起来。我总是告诉自己，我知道这个社会的原则，知道做人的准则，最终肯定会被这个社会给同化，也会学会圆滑，也会学会打马虎眼，也会慈祥，也会忍让，也会学会合作&#8230;，但我只是不想学会的太快，我才工作两年。慢慢经过几次事情和hait说的一些话，也慢慢开始注意自己的一些行为，也开始学会一些表达方式，以后还要学会和团队一起成长，做事&#8230;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我知道你会离开，但我不知道来的会这么快，谢谢你教会我的一切，只是我现在只能说谢谢&#8230;如果还有以后</p>
]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/981/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>垂直SeekBar:VerticalSeekbar实现</title>
		<link>http://www.quou.cn/archives/971</link>
		<comments>http://www.quou.cn/archives/971#comments</comments>
		<pubDate>Fri, 20 Apr 2012 16:22:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=971</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;做手机应用很容易遇到这个需求，网上也有很多人实现了过程，这次刚好也遇到了，只在setThumb中添加了几句缩小按钮的代码以适应应用的需要，下面看一下实现效果吧： &#160;&#160;&#160;&#160;&#160;&#160;//在这里写点记事吧，就不新开了。这段时间一直忙于写android版的德州游戏，最初花了一周多点时间就出了一个粗略版应用，接下来大刀阔斧的把所有布局重新设计，大约改版了3-4次，主要是之前没有这方面经验，为了适应动画需求而做，终于在上周历时7-8天出了个动画版本。之前他们开会也确认德州android最终会交由北京开发，但我们还是继续保持，主要是为了做技术积累。 &#160;&#160;&#160;&#160;&#160;&#160;星哥有天早上来了兴奋的给我说他终于想到要做什么了，把500wan小秘书改成app应用：1、节约短信成本；2、消息实时触达；3、内容多样化。恩，确实很好的一个设计，而且我也觉得我们有那个能力去实现。希望这个想法可以早日提上开发历程。 &#160;&#160;&#160;&#160;&#160;&#160;那天看见有人在公司传阅这个博客，之前也出现过这样的事情，以前写过一些比较上火的文章，提到了很多人和事，最后不得不删除，前端时间还是想写一些，主要是为了记录走过的这些路，经历的这些点滴，所以在首页加了公司访问限制，对不住了。还是很想让看我博客的人知道不要传阅，看看娱乐还是可以的。 &#160;&#160;&#160;&#160;&#160;&#160;好了，算是插了一段广告吧，时间有点晚了，贴完代码睡觉。 View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;做手机应用很容易遇到这个需求，网上也有很多人实现了过程，这次刚好也遇到了，只在setThumb中添加了几句缩小按钮的代码以适应应用的需要，下面看一下实现效果吧： <br />
<img src="http://www.quou.cn/wp-content/uploads/2012/04/PrtScn1233243-300x294.jpg" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//在这里写点记事吧，就不新开了。这段时间一直忙于写android版的德州游戏，最初花了一周多点时间就出了一个粗略版应用，接下来大刀阔斧的把所有布局重新设计，大约改版了3-4次，主要是之前没有这方面经验，为了适应动画需求而做，终于在上周历时7-8天出了个动画版本。之前他们开会也确认德州android最终会交由北京开发，但我们还是继续保持，主要是为了做技术积累。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;星哥有天早上来了兴奋的给我说他终于想到要做什么了，把500wan小秘书改成app应用：1、节约短信成本；2、消息实时触达；3、内容多样化。恩，确实很好的一个设计，而且我也觉得我们有那个能力去实现。希望这个想法可以早日提上开发历程。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;那天看见有人在公司传阅这个博客，之前也出现过这样的事情，以前写过一些比较上火的文章，提到了很多人和事，最后不得不删除，前端时间还是想写一些，主要是为了记录走过的这些路，经历的这些点滴，所以在首页加了公司访问限制，对不住了。还是很想让看我博客的人知道不要传阅，看看娱乐还是可以的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好了，算是插了一段广告吧，时间有点晚了，贴完代码睡觉。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p971code2'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9712"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
</pre></td><td class="code" id="p971code2"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.esun.texas.view</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.drawable.BitmapDrawable</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.drawable.Drawable</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.util.AttributeSet</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.util.Log</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.KeyEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MotionEvent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.AbsSeekBar</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.SeekBar</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> VerticalSeekbar <span style="color: #000000; font-weight: bold;">extends</span> SeekBar <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Drawable mThumb<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> height<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> width<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> OnSeekBarChangeListener <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">void</span> onProgressChanged<span style="color: #009900;">&#40;</span>VerticalSeekbar VerticalSeekBar, <span style="color: #000066; font-weight: bold;">int</span> progress, <span style="color: #000066; font-weight: bold;">boolean</span> fromUser<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">void</span> onStartTrackingTouch<span style="color: #009900;">&#40;</span>VerticalSeekbar VerticalSeekBar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">void</span> onStopTrackingTouch<span style="color: #009900;">&#40;</span>VerticalSeekbar VerticalSeekBar<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> OnSeekBarChangeListener mOnSeekBarChangeListener<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> VerticalSeekbar<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#40;</span>context, <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> VerticalSeekbar<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context, <span style="color: #003399;">AttributeSet</span> attrs<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#40;</span>context, attrs, android.<span style="color: #006633;">R</span>.<span style="color: #006633;">attr</span>.<span style="color: #006633;">seekBarStyle</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> VerticalSeekbar<span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span> context, <span style="color: #003399;">AttributeSet</span> attrs, <span style="color: #000066; font-weight: bold;">int</span> defStyle<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span>context, attrs, defStyle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setOnSeekBarChangeListener<span style="color: #009900;">&#40;</span>OnSeekBarChangeListener l<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        mOnSeekBarChangeListener <span style="color: #339933;">=</span> l<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">void</span> onStartTrackingTouch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>mOnSeekBarChangeListener <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            mOnSeekBarChangeListener.<span style="color: #006633;">onStartTrackingTouch</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">void</span> onStopTrackingTouch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>mOnSeekBarChangeListener <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            mOnSeekBarChangeListener.<span style="color: #006633;">onStopTrackingTouch</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
    <span style="color: #000066; font-weight: bold;">void</span> onProgressRefresh<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span> scale, <span style="color: #000066; font-weight: bold;">boolean</span> fromUser<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        Drawable thumb <span style="color: #339933;">=</span> mThumb<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>thumb <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            setThumbPos<span style="color: #009900;">&#40;</span>getHeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, thumb, scale, <span style="color: #003399;">Integer</span>.<span style="color: #006633;">MIN_VALUE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            invalidate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>mOnSeekBarChangeListener <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            mOnSeekBarChangeListener.<span style="color: #006633;">onProgressChanged</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, getProgress<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, fromUser<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> setThumbPos<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> w, Drawable thumb, <span style="color: #000066; font-weight: bold;">float</span> scale, <span style="color: #000066; font-weight: bold;">int</span> gap<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">int</span> available <span style="color: #339933;">=</span> w<span style="color: #339933;">+</span>getPaddingLeft<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>getPaddingRight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> thumbWidth <span style="color: #339933;">=</span> thumb.<span style="color: #006633;">getIntrinsicWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> thumbHeight <span style="color: #339933;">=</span> thumb.<span style="color: #006633;">getIntrinsicHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        available <span style="color: #339933;">-=</span> thumbWidth<span style="color: #339933;">;</span>
        <span style="color: #666666; font-style: italic;">// The extra space for the thumb to move on the track</span>
        available <span style="color: #339933;">+=</span> getThumbOffset<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> thumbPos <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#40;</span>scale <span style="color: #339933;">*</span> available<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> topBound, bottomBound<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>gap <span style="color: #339933;">==</span> <span style="color: #003399;">Integer</span>.<span style="color: #006633;">MIN_VALUE</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            Rect oldBounds <span style="color: #339933;">=</span> thumb.<span style="color: #006633;">getBounds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            topBound <span style="color: #339933;">=</span> oldBounds.<span style="color: #006633;">top</span><span style="color: #339933;">;</span>
            bottomBound <span style="color: #339933;">=</span> oldBounds.<span style="color: #006633;">bottom</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            topBound <span style="color: #339933;">=</span> gap<span style="color: #339933;">;</span>
            bottomBound <span style="color: #339933;">=</span> gap <span style="color: #339933;">+</span> thumbHeight<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        thumb.<span style="color: #006633;">setBounds</span><span style="color: #009900;">&#40;</span>thumbPos, topBound, thumbPos <span style="color: #339933;">+</span> thumbWidth, bottomBound<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onDraw<span style="color: #009900;">&#40;</span><span style="color: #003399;">Canvas</span> c<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        c.<span style="color: #006633;">rotate</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        c.<span style="color: #006633;">translate</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>height,<span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onDraw</span><span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000000; font-weight: bold;">synchronized</span> <span style="color: #000066; font-weight: bold;">void</span> onMeasure<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> widthMeasureSpec, <span style="color: #000066; font-weight: bold;">int</span> heightMeasureSpec<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        height <span style="color: #339933;">=</span> <span style="color: #003399;">View</span>.<span style="color: #006633;">MeasureSpec</span>.<span style="color: #006633;">getSize</span><span style="color: #009900;">&#40;</span>heightMeasureSpec<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        width <span style="color: #339933;">=</span> <span style="color: #003399;">View</span>.<span style="color: #006633;">MeasureSpec</span>.<span style="color: #006633;">getSize</span><span style="color: #009900;">&#40;</span>widthMeasureSpec<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">setMeasuredDimension</span><span style="color: #009900;">&#40;</span>width, height<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> Bitmap getThumbImage<span style="color: #009900;">&#40;</span>Bitmap bmp, <span style="color: #000066; font-weight: bold;">int</span> width, <span style="color: #000066; font-weight: bold;">int</span> height<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">int</span> w <span style="color: #339933;">=</span> bmp.<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000066; font-weight: bold;">int</span> h <span style="color: #339933;">=</span> bmp.<span style="color: #006633;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        Matrix m <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Matrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        m.<span style="color: #006633;">postScale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>width<span style="color: #339933;">/</span>w, <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>height<span style="color: #339933;">/</span>h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test&quot;</span>, <span style="color: #0000ff;">&quot;__&quot;</span><span style="color: #339933;">+</span>w<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;___&quot;</span><span style="color: #339933;">+</span>h<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;___&quot;</span><span style="color: #339933;">+</span>width<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;___&quot;</span><span style="color: #339933;">+</span>height<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> Bitmap.<span style="color: #006633;">createBitmap</span><span style="color: #009900;">&#40;</span>bmp, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, w, h, m, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setThumb<span style="color: #009900;">&#40;</span>Drawable thumb<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Bitmap bmp <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>BitmapDrawable<span style="color: #009900;">&#41;</span> thumb<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getBitmap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> w <span style="color: #339933;">=</span> <span style="color: #cc66cc;">25</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> h <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>w<span style="color: #339933;">*</span><span style="color: #cc66cc;">2.2766</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        bmp <span style="color: #339933;">=</span> getThumbImage<span style="color: #009900;">&#40;</span>bmp, w, h<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        mThumb <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BitmapDrawable<span style="color: #009900;">&#40;</span>bmp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">setThumb</span><span style="color: #009900;">&#40;</span>mThumb<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onSizeChanged<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> w, <span style="color: #000066; font-weight: bold;">int</span> h, <span style="color: #000066; font-weight: bold;">int</span> oldw, <span style="color: #000066; font-weight: bold;">int</span> oldh<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onSizeChanged</span><span style="color: #009900;">&#40;</span>h, w, oldw, oldh<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onTouchEvent<span style="color: #009900;">&#40;</span>MotionEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>isEnabled<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">getAction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">case</span> MotionEvent.<span style="color: #006633;">ACTION_DOWN</span><span style="color: #339933;">:</span>
                setPressed<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                onStartTrackingTouch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                trackTouchEvent<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">case</span> MotionEvent.<span style="color: #006633;">ACTION_MOVE</span><span style="color: #339933;">:</span>
                trackTouchEvent<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                attemptClaimDrag<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">case</span> MotionEvent.<span style="color: #006633;">ACTION_UP</span><span style="color: #339933;">:</span>
                trackTouchEvent<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                onStopTrackingTouch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                setPressed<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">case</span> MotionEvent.<span style="color: #006633;">ACTION_CANCEL</span><span style="color: #339933;">:</span>
                onStopTrackingTouch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                setPressed<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> trackTouchEvent<span style="color: #009900;">&#40;</span>MotionEvent event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> Height <span style="color: #339933;">=</span> getHeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> available <span style="color: #339933;">=</span> Height <span style="color: #339933;">-</span> getPaddingBottom<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> getPaddingTop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> Y <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span>event.<span style="color: #006633;">getY</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">float</span> scale<span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">float</span> progress <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Y <span style="color: #339933;">&gt;</span> Height <span style="color: #339933;">-</span> getPaddingBottom<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            scale <span style="color: #339933;">=</span> 0.0f<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>Y  <span style="color: #339933;">&lt;</span> getPaddingTop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            scale <span style="color: #339933;">=</span> 1.0f<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
            scale <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>Height <span style="color: #339933;">-</span> getPaddingBottom<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span>Y<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>available<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> max <span style="color: #339933;">=</span> getMax<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        progress <span style="color: #339933;">=</span> scale <span style="color: #339933;">*</span> max<span style="color: #339933;">;</span>
&nbsp;
        setProgress<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span> progress<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> attemptClaimDrag<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>getParent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            getParent<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">requestDisallowInterceptTouchEvent</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> dispatchKeyEvent<span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span> event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">getAction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #003399;">KeyEvent</span> newEvent <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>event.<span style="color: #006633;">getKeyCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_UP</span><span style="color: #339933;">:</span>
                    newEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">KeyEvent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span>,<span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_RIGHT</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_DOWN</span><span style="color: #339933;">:</span>
                    newEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">KeyEvent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span>,<span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_LEFT</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_LEFT</span><span style="color: #339933;">:</span>
                    newEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">KeyEvent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span>,<span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_DOWN</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_RIGHT</span><span style="color: #339933;">:</span>
                    newEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">KeyEvent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span>,<span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">KEYCODE_DPAD_UP</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">default</span><span style="color: #339933;">:</span>
                    newEvent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">KeyEvent</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">KeyEvent</span>.<span style="color: #006633;">ACTION_DOWN</span>,event.<span style="color: #006633;">getKeyCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000000; font-weight: bold;">return</span> newEvent.<span style="color: #006633;">dispatch</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/971/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SoundPool播放一段时间后无声</title>
		<link>http://www.quou.cn/archives/966</link>
		<comments>http://www.quou.cn/archives/966#comments</comments>
		<pubDate>Fri, 20 Apr 2012 15:56:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=966</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;项目需要加入声音，之前也写过一个小app，用了MediaPlayer，但是这次这个声音极其短，播放的时候没有反应只有一条日志，忘了内容了，大意就是内容太短，最后发现播放这类提示应应该是用SoundPool来播放，应用出来后，玩了一段时间发现没声音了，奇怪，什么意思，赶紧搜搜，下面这文章写的很不错：http://blog.sina.com.cn/s/blog_71d26ff00100uzci.html，把内容copy过来存档： &#160;&#160;&#160;&#160;SoundPool的用法就不再提了，网上资料多，就说说在实际应用中可能会遇到的一些奇葩的问题，这些问题应该是和底层实现上有关系。 1、AudioFlinger could not create track, status: -12 &#160;&#160;&#160;&#160;SoundPool即音效池，在创建的时候 maxStream这个参数代表能够同时播放的最大音效数，这里切忌合理使用，写的太大后会报AudioFlinger could not create track, status: -12 。。。。一旦报了这个错，你就听不到声音了，呵呵。 2、256个音效 &#160;&#160;&#160;&#160;当调用load方法的时候实际就是把音效加载到了 SoundPool中，此时返回的streamId其实就是该音效在SoundPool中的Id，这个ID从0还是1来着（有点记不清了）递增，不过要注意的是，不要超过 256 这个临界点。也就是说第257个声音加载进去后，调用play方法其实是播不出来的，说不定还会挤掉一些前面加载好的声音。这个256的限制通过查看SDK源码基本就能了解清楚，它底层就那么实现的，用一个类似堆栈来存。 3、unload方法和release方法 &#160;&#160;&#160;&#160;如果你音效多，也不要指望unload方法来清除掉一些音效后再load新的进去，虽然unload后音效卸载了，但是前面分给它在SoundPool里面的Id可没有释放掉，也就是说这个时候你load新的进去只会在后面继续累加，然后累加多了就超过256了，然后就就听不到声音，然后就没有然后了。要想彻底清掉前面的音效请使用release方法，它会连内存中占用的资源一起释放掉。 其他还有点什么呢，load需要一点点时间，load后不要马上unload，load ---play--unload的做法并不可取，不要load太大的音效，它只会申请1M的内存空间。SoundPool出错后通常会看到retuen的值是0。 &#160;&#160;&#160;&#160;&#160;&#160;最后我亲测了一次，发现果然是load值超过了256后就没有声音了，所以就用了一个HashMap把这个声音值存储了，结果发现还是解决不了问题，只能在值快到达200时主动release掉，release掉后要重新测试化播放器。下面把我的代码贴一下： View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;项目需要加入声音，之前也写过一个小app，用了MediaPlayer，但是这次这个声音极其短，播放的时候没有反应只有一条日志，忘了内容了，大意就是内容太短，最后发现播放这类提示应应该是用SoundPool来播放，应用出来后，玩了一段时间发现没声音了，奇怪，什么意思，赶紧搜搜，下面这文章写的很不错：http://blog.sina.com.cn/s/blog_71d26ff00100uzci.html，把内容copy过来存档：<br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;SoundPool的用法就不再提了，网上资料多，就说说在实际应用中可能会遇到的一些奇葩的问题，这些问题应该是和底层实现上有关系。<br />
1、AudioFlinger could not  create track, status: -12<br />
&nbsp;&nbsp;&nbsp;&nbsp;SoundPool即音效池，在创建的时候 maxStream这个参数代表能够同时播放的最大音效数，这里切忌合理使用，写的太大后会报AudioFlinger could not  create track, status: -12 。。。。一旦报了这个错，你就听不到声音了，呵呵。<br />
2、256个音效<br />
&nbsp;&nbsp;&nbsp;&nbsp;当调用load方法的时候实际就是把音效加载到了 SoundPool中，此时返回的streamId其实就是该音效在SoundPool中的Id，这个ID从0还是1来着（有点记不清了）递增，不过要注意的是，不要超过  256  这个临界点。也就是说第257个声音加载进去后，调用play方法其实是播不出来的，说不定还会挤掉一些前面加载好的声音。这个256的限制通过查看SDK源码基本就能了解清楚，它底层就那么实现的，用一个类似堆栈来存。<br />
3、unload方法和release方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;如果你音效多，也不要指望unload方法来清除掉一些音效后再load新的进去，虽然unload后音效卸载了，但是前面分给它在SoundPool里面的Id可没有释放掉，也就是说这个时候你load新的进去只会在后面继续累加，然后累加多了就超过256了，然后就就听不到声音，然后就没有然后了。要想彻底清掉前面的音效请使用release方法，它会连内存中占用的资源一起释放掉。<br />
其他还有点什么呢，load需要一点点时间，load后不要马上unload，load ---play--unload的做法并不可取，不要load太大的音效，它只会申请1M的内存空间。SoundPool出错后通常会看到retuen的值是0。<br />
<span class="bottom"></span></code></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后我亲测了一次，发现果然是load值超过了256后就没有声音了，所以就用了一个HashMap把这个声音值存储了，结果发现还是解决不了问题，只能在值快到达200时主动release掉，release掉后要重新测试化播放器。下面把我的代码贴一下：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p966code4'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9664"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
</pre></td><td class="code" id="p966code4"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.esun.texas.controller</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Context</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.res.AssetFileDescriptor</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.AudioManager</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.MediaPlayer</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.SoundPool</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.util.Log</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.R</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.config.Config</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.lib.Common</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.model.Mactivity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashMap</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Created by IntelliJ IDEA.
 * User: tuyl
 * Date: 12-4-1
 * Time: 下午4:15
 * To change this template use File | Settings | File Templates.
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Csound <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> MediaPlayer player <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> MediaPlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> SoundPool spool <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoundPool<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span>, AudioManager.<span style="color: #006633;">STREAM_SYSTEM</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> AudioManager mgr <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>AudioManager<span style="color: #009900;">&#41;</span>Mactivity.<span style="color: #006633;">NEW_ACTIVITY</span>.<span style="color: #006633;">getSystemService</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Context</span>.<span style="color: #006633;">AUDIO_SERVICE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> CARD_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">card</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> CHECK_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">check</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> CHIPS_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">chips</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> GATHER_CHIPS_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">chips_gathering</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> FOLD_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">fold</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> MY_TURN_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">myturn</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> ONTURN_SOUND <span style="color: #339933;">=</span> R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">onturn</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">boolean</span> isMute <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> HashMap<span style="color: #339933;">&lt;</span>Integer, Integer<span style="color: #339933;">&gt;</span> sounds <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> HashMap<span style="color: #339933;">&lt;</span>Integer, Integer<span style="color: #339933;">&gt;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> getSound<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> resId<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>sounds.<span style="color: #006633;">containsKey</span><span style="color: #009900;">&#40;</span>resId<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">int</span> spload <span style="color: #339933;">=</span> spool.<span style="color: #006633;">load</span><span style="color: #009900;">&#40;</span>Mactivity.<span style="color: #006633;">NEW_ACTIVITY</span>, resId, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            sounds.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>resId, spload<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;init sound:&quot;</span><span style="color: #339933;">+</span>resId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> sounds.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>resId<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 播放短音效
     * @param resId
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> play<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> resId<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isMute<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//静音</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> spload <span style="color: #339933;">=</span> spool.<span style="color: #006633;">load</span><span style="color: #009900;">&#40;</span>Mactivity.<span style="color: #006633;">NEW_ACTIVITY</span>, resId, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;play sound:&quot;</span><span style="color: #339933;">+</span>resId<span style="color: #339933;">+</span><span style="color: #0000ff;">&quot;___&quot;</span><span style="color: #339933;">+</span>spload<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            spool.<span style="color: #006633;">setOnLoadCompleteListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> SoundPool.<span style="color: #006633;">OnLoadCompleteListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onLoadComplete<span style="color: #009900;">&#40;</span>android.<span style="color: #006633;">media</span>.<span style="color: #006633;">SoundPool</span> soundPool, <span style="color: #000066; font-weight: bold;">int</span> i, <span style="color: #000066; font-weight: bold;">int</span> i1<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                        <span style="color: #000066; font-weight: bold;">float</span> streamVolumeCurrent<span style="color: #339933;">=</span>mgr.<span style="color: #006633;">getStreamVolume</span><span style="color: #009900;">&#40;</span>AudioManager.<span style="color: #006633;">STREAM_MUSIC</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000066; font-weight: bold;">float</span> streamVolumeMax<span style="color: #339933;">=</span>mgr.<span style="color: #006633;">getStreamMaxVolume</span><span style="color: #009900;">&#40;</span>AudioManager.<span style="color: #006633;">STREAM_MUSIC</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000066; font-weight: bold;">float</span> volume<span style="color: #339933;">=</span>streamVolumeCurrent<span style="color: #339933;">/</span>streamVolumeMax<span style="color: #339933;">;</span>
                        spool.<span style="color: #006633;">play</span><span style="color: #009900;">&#40;</span>spload, volume, volume, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                        Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Csound.play.onLoadComplete&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>spload <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                spool.<span style="color: #006633;">release</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                spool <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SoundPool<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span>, AudioManager.<span style="color: #006633;">STREAM_SYSTEM</span>, <span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Csound.play&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> playMusic<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> resSound<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isMute<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//静音</span>
&nbsp;
            Activity act <span style="color: #339933;">=</span> Mactivity.<span style="color: #006633;">NEW_ACTIVITY</span><span style="color: #339933;">;</span>
            AssetFileDescriptor afd <span style="color: #339933;">=</span> act.<span style="color: #006633;">getResources</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">openRawResourceFd</span><span style="color: #009900;">&#40;</span>resSound<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            player.<span style="color: #006633;">reset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            player.<span style="color: #006633;">setDataSource</span><span style="color: #009900;">&#40;</span>afd.<span style="color: #006633;">getFileDescriptor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, afd.<span style="color: #006633;">getStartOffset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, afd.<span style="color: #006633;">getDeclaredLength</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            player.<span style="color: #006633;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            player.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            afd.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            player.<span style="color: #006633;">setOnCompletionListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> MediaPlayer.<span style="color: #006633;">OnCompletionListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCompletion<span style="color: #009900;">&#40;</span>MediaPlayer arg0<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    player.<span style="color: #006633;">release</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//释放资源</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Csound.playMusic&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/966/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java版RC4加密实现</title>
		<link>http://www.quou.cn/archives/963</link>
		<comments>http://www.quou.cn/archives/963#comments</comments>
		<pubDate>Fri, 20 Apr 2012 15:39:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=963</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;刚开始写的时候就是直接从网上copy，因为像快速出原型，结果花费了好多时间做调试，代码离想象中总是差很远，最后我实在受不了了，只能自己一个字一个字的码出了一个类库，贴出来，分享给有用的人。使用方法： View Code JAVA1 2 RC4 rc4 = new RC4&#40;Info.RC4_KEY&#41;; String data = rc4..make&#40;&#34;body&#34;&#41;; 这段代码我想解释都解释不了。 View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;刚开始写的时候就是直接从网上copy，因为像快速出原型，结果花费了好多时间做调试，代码离想象中总是差很远，最后我实在受不了了，只能自己一个字一个字的码出了一个类库，贴出来，分享给有用的人。使用方法：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p963code7'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9637"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p963code7"><pre class="java" style="font-family:Dialog;">RC4 rc4 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> RC4<span style="color: #009900;">&#40;</span>Info.<span style="color: #006633;">RC4_KEY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003399;">String</span> data <span style="color: #339933;">=</span> rc4..<span style="color: #006633;">make</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>这段代码我想解释都解释不了。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p963code8'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9638"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
</pre></td><td class="code" id="p963code8"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.esun.texas.lib</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> RC4<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> box <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">256</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> RC4<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> key<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> k <span style="color: #339933;">=</span> key.<span style="color: #006633;">getBytes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, t <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, l <span style="color: #339933;">=</span> k.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            box<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            x <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>x<span style="color: #339933;">+</span>box<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>k<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">%</span>l<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span>
&nbsp;
            t <span style="color: #339933;">=</span> box<span style="color: #009900;">&#91;</span>x<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            box<span style="color: #009900;">&#91;</span>x<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> box<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            box<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> t<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> make<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">int</span> t, o, i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>, j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span>, l <span style="color: #339933;">=</span> data.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> out <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> ibox <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">256</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">System</span>.<span style="color: #006633;">arraycopy</span><span style="color: #009900;">&#40;</span>box, <span style="color: #cc66cc;">0</span>, ibox, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">256</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> c<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> c<span style="color: #339933;">&lt;</span>l<span style="color: #339933;">;</span> c<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            i <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span>
            j <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>j<span style="color: #339933;">+</span>ibox<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span>
&nbsp;
            t <span style="color: #339933;">=</span> ibox<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            ibox<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> ibox<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            ibox<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> t<span style="color: #339933;">;</span>
&nbsp;
            o <span style="color: #339933;">=</span> ibox<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span>ibox<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> ibox<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
            out<span style="color: #009900;">&#91;</span>c<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">byte</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#91;</span>c<span style="color: #009900;">&#93;</span> <span style="color: #339933;">^</span> o<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> out<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/963/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SurfaceView实现闪烁星星效果图</title>
		<link>http://www.quou.cn/archives/960</link>
		<comments>http://www.quou.cn/archives/960#comments</comments>
		<pubDate>Fri, 20 Apr 2012 15:30:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=960</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;在玩家获胜后会出现星星环绕在用户头像周围，在写这个动画之前写过一个倒计时的效果，倒计时是重写了ImageView中使用不断重绘实现，这次使用了SurfaceView,关于surfaceview的组件网络已经有很多很专业的介绍了，这里就不重述了，看看效果图吧 &#160;&#160;&#160;&#160;&#160;&#160;就是surfaceview刚被setVisibility后可能holder.lockCanvas()出现null，为了避免这个现象，我使用了一个thread一直重试，直到成功。好困就不解释了，下面直接贴源码了： View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在玩家获胜后会出现星星环绕在用户头像周围，在写这个动画之前写过一个倒计时的效果，倒计时是重写了ImageView中使用不断重绘实现，这次使用了SurfaceView,关于surfaceview的组件网络已经有很多很专业的介绍了，这里就不重述了，看看效果图吧 <br />
<img src="http://www.quou.cn/wp-content/uploads/2012/04/PrtScn20120420231126-300x207.jpg" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就是surfaceview刚被setVisibility后可能holder.lockCanvas()出现null，为了避免这个现象，我使用了一个thread一直重试，直到成功。好困就不解释了，下面直接贴源码了：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p960code10'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p96010"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
</pre></td><td class="code" id="p960code10"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.esun.texas.utils</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.pm.ConfigurationInfo</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Handler</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.util.Log</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.SurfaceHolder</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.SurfaceView</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.R</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.config.Config</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.lib.Common</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Timer</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.TimerTask</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Created by IntelliJ IDEA.
 * User: tuyl
 * Date: 12-4-17
 * Time: 下午4:15
 * To change this template use File | Settings | File Templates.
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> WinStarAnimation <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> SurfaceView surface<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> num <span style="color: #339933;">=</span> <span style="color: #cc66cc;">20</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> SurfaceHolder holder<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Paint</span> paint<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//画笔</span>
    <span style="color: #000000; font-weight: bold;">private</span> Bitmap star<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//星星bitmap</span>
    <span style="color: #000000; font-weight: bold;">private</span> Bitmap tmpBmp<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> starInfo<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//星星信息</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">double</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> starsInfo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">double</span><span style="color: #009900;">&#91;</span>num<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//星星缩放度、增减性 0-&gt;减, 1-&gt;增</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pConfig <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span>num<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//星星坐标 [x, y]</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> swidth, sheight<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Timer</span> timer<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Canvas</span> cas<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> isinit <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> runTime <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> speed <span style="color: #339933;">=</span> <span style="color: #cc66cc;">200</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">Thread</span> thread<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> isStop <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> WinStarAnimation<span style="color: #009900;">&#40;</span>SurfaceView surface, Bitmap star<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">surface</span> <span style="color: #339933;">=</span> surface<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">surface</span>.<span style="color: #006633;">setZOrderOnTop</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        holder <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">surface</span>.<span style="color: #006633;">getHolder</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        holder.<span style="color: #006633;">setFormat</span><span style="color: #009900;">&#40;</span>PixelFormat.<span style="color: #006633;">TRANSLUCENT</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置透明</span>
        holder.<span style="color: #006633;">addCallback</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> SurfaceHolder.<span style="color: #006633;">Callback</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> surfaceCreated<span style="color: #009900;">&#40;</span>SurfaceHolder surfaceHolder<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> surfaceChanged<span style="color: #009900;">&#40;</span>SurfaceHolder surfaceHolder, <span style="color: #000066; font-weight: bold;">int</span> i, <span style="color: #000066; font-weight: bold;">int</span> i1, <span style="color: #000066; font-weight: bold;">int</span> i2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> surfaceDestroyed<span style="color: #009900;">&#40;</span>SurfaceHolder surfaceHolder<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                _stopShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        paint <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Paint</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">star</span> <span style="color: #339933;">=</span> star<span style="color: #339933;">;</span>
        starInfo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span>star.<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>, star.<span style="color: #006633;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
        swidth <span style="color: #339933;">=</span> <span style="color: #cc66cc;">90</span><span style="color: #339933;">;</span> sheight <span style="color: #339933;">=</span> <span style="color: #cc66cc;">110</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//swidth = sur.getWidth(); sheight = sur.getHeight();</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> WinStarAnimation setParams<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> width, <span style="color: #000066; font-weight: bold;">int</span> height, <span style="color: #000066; font-weight: bold;">int</span> num<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">swidth</span> <span style="color: #339933;">=</span> width<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">sheight</span> <span style="color: #339933;">=</span> height<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">num</span> <span style="color: #339933;">=</span> num<span style="color: #339933;">;</span>
        starsInfo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">double</span><span style="color: #009900;">&#91;</span>num<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//星星缩放度、增减性 0-&gt;减, 1-&gt;增</span>
        pConfig <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span>num<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> Bitmap getNewStar<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> index<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        tmpBmp <span style="color: #339933;">=</span> star.<span style="color: #006633;">copy</span><span style="color: #009900;">&#40;</span>Bitmap.<span style="color: #006633;">Config</span>.<span style="color: #006633;">ARGB_8888</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            Matrix matrix <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Matrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0.2</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0.9</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+=</span> <span style="color: #cc66cc;">0.1</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">else</span> starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-=</span> <span style="color: #cc66cc;">0.1</span><span style="color: #339933;">;</span>
&nbsp;
            matrix.<span style="color: #006633;">postScale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>starsInfo<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            tmpBmp <span style="color: #339933;">=</span> Bitmap.<span style="color: #006633;">createBitmap</span><span style="color: #009900;">&#40;</span>tmpBmp, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, starInfo<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, starInfo<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, matrix, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WinStarAnimation.getNewStar&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> tmpBmp<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> initShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>holder.<span style="color: #006633;">isCreating</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isinit<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//已经初始化过了</span>
            <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000066; font-weight: bold;">int</span> f <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            cas <span style="color: #339933;">=</span> holder.<span style="color: #006633;">lockCanvas</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cas <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
            Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;init win star animation...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            Matrix matrix<span style="color: #339933;">;</span>
            <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>num<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                tmpBmp <span style="color: #339933;">=</span> star.<span style="color: #006633;">copy</span><span style="color: #009900;">&#40;</span>Bitmap.<span style="color: #006633;">Config</span>.<span style="color: #006633;">ARGB_8888</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                matrix <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Matrix<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">double</span> random <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                random <span style="color: #339933;">=</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">min</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0.1</span><span style="color: #339933;">+</span>random, <span style="color: #cc66cc;">1.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//为了不引起图片大小为0</span>
&nbsp;
                matrix.<span style="color: #006633;">postScale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>random, <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>random<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                tmpBmp <span style="color: #339933;">=</span> Bitmap.<span style="color: #006633;">createBitmap</span><span style="color: #009900;">&#40;</span>tmpBmp, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, starInfo<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, starInfo<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, matrix, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                starsInfo<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">double</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span>random, <span style="color: #003399;">Math</span>.<span style="color: #006633;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">0.5</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
                pConfig<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>swidth <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>, <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>sheight <span style="color: #339933;">*</span> <span style="color: #003399;">Math</span>.<span style="color: #006633;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
                cas.<span style="color: #006633;">drawBitmap</span><span style="color: #009900;">&#40;</span>tmpBmp, pConfig<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, pConfig<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, paint<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            isinit <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
            f <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WinStarAnimation.startShow&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            f <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cas <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
                holder.<span style="color: #006633;">unlockCanvasAndPost</span><span style="color: #009900;">&#40;</span>cas<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">return</span> f<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> startShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        surface.<span style="color: #006633;">setVisibility</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span>.<span style="color: #006633;">VISIBLE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>timer <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//已经存在</span>
&nbsp;
        isinit <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        runTime <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
        timer <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Timer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #003399;">TimerTask</span> task <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">TimerTask</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//清除屏幕</span>
                <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                    runTime <span style="color: #339933;">+=</span> speed<span style="color: #339933;">;</span>
                    <span style="color: #666666; font-style: italic;">//超时停止</span>
                    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>runTime<span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">3000</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                        Log.<span style="color: #006633;">e</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;star win out time&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        timer.<span style="color: #006633;">cancel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        starHandle.<span style="color: #006633;">sendEmptyMessage</span><span style="color: #009900;">&#40;</span>0x001<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
&nbsp;
                    <span style="color: #000066; font-weight: bold;">int</span> f <span style="color: #339933;">=</span> initShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//初始化成功</span>
                        <span style="color: #003399;">Canvas</span> cas <span style="color: #339933;">=</span> holder.<span style="color: #006633;">lockCanvas</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cas <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                            cas.<span style="color: #006633;">drawColor</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Color</span>.<span style="color: #006633;">TRANSPARENT</span>, PorterDuff.<span style="color: #006633;">Mode</span>.<span style="color: #006633;">CLEAR</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                            <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>num<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                tmpBmp.<span style="color: #006633;">recycle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                tmpBmp <span style="color: #339933;">=</span> getNewStar<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                cas.<span style="color: #006633;">drawBitmap</span><span style="color: #009900;">&#40;</span>tmpBmp, pConfig<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, pConfig<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>, paint<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #009900;">&#125;</span>
&nbsp;
                        <span style="color: #009900;">&#125;</span>
                    <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>f <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//初始化出错</span>
                        starHandle.<span style="color: #006633;">sendEmptyMessage</span><span style="color: #009900;">&#40;</span>0x001<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WinStarAnimation.runSurface&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    starHandle.<span style="color: #006633;">sendEmptyMessage</span><span style="color: #009900;">&#40;</span>0x001<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">finally</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//最后要解锁</span>
                    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>cas <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
                        holder.<span style="color: #006633;">unlockCanvasAndPost</span><span style="color: #009900;">&#40;</span>cas<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
        timer.<span style="color: #006633;">schedule</span><span style="color: #009900;">&#40;</span>task, <span style="color: #cc66cc;">0</span>, speed<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> Handler starHandle <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Handler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> handleMessage<span style="color: #009900;">&#40;</span>android.<span style="color: #006633;">os</span>.<span style="color: #006633;">Message</span> msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">what</span> <span style="color: #339933;">==</span> 0x001<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//停止</span>
                Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;receive stop win star animation__&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #666666; font-style: italic;">//_stopShow();</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> stopShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        starHandle.<span style="color: #006633;">sendEmptyMessage</span><span style="color: #009900;">&#40;</span>0x001<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> _stopShow<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>timer <span style="color: #339933;">!=</span><span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                timer.<span style="color: #006633;">cancel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                timer <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            cas <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
            Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;stop win star animation__&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WinStarAnimation.stopShow&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/960/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android “正在加载中&#8230;”实现方法</title>
		<link>http://www.quou.cn/archives/957</link>
		<comments>http://www.quou.cn/archives/957#comments</comments>
		<pubDate>Fri, 20 Apr 2012 15:05:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=957</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;一个好的应用应该是对用户做出的任何动作都做出响应，如当用户请求登陆请求时，应该弹出正在加载中的对话框让用户知道应用正在请求中，实现的方式是用Thread+ProgressDialog，通过Handler来通知加载完成。实现过程比较简单我就不多说了，先看效果图： 不描述，直接代码，代码是拼凑，主要是想说明过程。 View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个好的应用应该是对用户做出的任何动作都做出响应，如当用户请求登陆请求时，应该弹出正在加载中的对话框让用户知道应用正在请求中，实现的方式是用Thread+ProgressDialog，通过Handler来通知加载完成。实现过程比较简单我就不多说了，先看效果图：</p>
<p><img src="http://timg01.baidu-2img.cn/timg?tc&amp;er&amp;sec=1334934144&amp;msfs=10&amp;di=fdd6bee4a832ad5c22bc74a96e7c904c&amp;size=b850_580&amp;src=http%3A%2F%2Fbs.baidu.com%2Fnetdisk-thumbnailnew%2F3a4b9e603f9ac3ffa631f8ff0fe0f1ea_850x580.jpg%3Fsign%3DMBO%3APU7TkgT12dFq%3AditIKmpmo5RzLiypzBPRINhwKP4%253D%26response-content-type%3Dimage" alt="" /> </p>
<p>不描述，直接代码，代码是拼凑，主要是想说明过程。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p957code12'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p95712"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
</pre></td><td class="code" id="p957code12"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> LoginActivity <span style="color: #000000; font-weight: bold;">extends</span> Activity<span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> ProgressDialog loadingDialog<span style="color: #339933;">;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        loginThread<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test&quot;</span>, <span style="color: #0000ff;">&quot;test&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
    * 开始启动加载对话框
    */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> loading<span style="color: #009900;">&#40;</span>Activity act<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;Starting loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        loadingDialog <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ProgressDialog<span style="color: #009900;">&#40;</span>act<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        loadingDialog.<span style="color: #006633;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;正在加载数据...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        loadingDialog.<span style="color: #006633;">setMessage</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;请稍等...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        loadingDialog.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
    * 结束加载对话框
    */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> stopLoading<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Log.<span style="color: #006633;">d</span><span style="color: #009900;">&#40;</span>Config.<span style="color: #006633;">LOG_TAG</span>, <span style="color: #0000ff;">&quot;Stop loading&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>loadingDialog <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            loadingDialog.<span style="color: #006633;">dismiss</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
    * 开始登陆检查线程
    */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> loginThread<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> uname, <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> upwd<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Common.<span style="color: #006633;">loading</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//开始加载</span>
&nbsp;
        <span style="color: #003399;">Thread</span> t <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Thread</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Runnable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #666666; font-style: italic;">//get方式传密码是不好的做法</span>
                <span style="color: #003399;">String</span> url <span style="color: #339933;">=</span> <span style="color: #003399;">String</span>.<span style="color: #006633;">format</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://www.hcent.com/login/%s/%s&quot;</span>, uname, upwd<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">String</span> data <span style="color: #339933;">=</span> NetWork.<span style="color: #006633;">getHttpData</span><span style="color: #009900;">&#40;</span>url<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #666666; font-style: italic;">//加载完成，发送消息</span>
                Message msg <span style="color: #339933;">=</span> loadHandle.<span style="color: #006633;">obtainMessage</span><span style="color: #009900;">&#40;</span>StatusConfig.<span style="color: #006633;">LOADING_OVER</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                Bundle bu <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Bundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                bu.<span style="color: #006633;">putString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data&quot;</span>, data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                msg.<span style="color: #006633;">setData</span><span style="color: #009900;">&#40;</span>bu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                loadHandle.<span style="color: #006633;">sendMessage</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        t.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
    * 消息通知句柄
    */</span>
    <span style="color: #000000; font-weight: bold;">public</span> Handler loadHandle <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Handler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        @Override
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> handleMessage<span style="color: #009900;">&#40;</span>Message msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">what</span> <span style="color: #339933;">==</span> StatusConfig.<span style="color: #006633;">LOADING_OVER</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//加载完成</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//登陆成功</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            Common.<span style="color: #006633;">stopLoading</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/957/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seekbar+ViewFlipper实现切屏效果</title>
		<link>http://www.quou.cn/archives/950</link>
		<comments>http://www.quou.cn/archives/950#comments</comments>
		<pubDate>Fri, 20 Apr 2012 14:29:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android&Java]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=950</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;前天下午（04/18）加了一会班导出了第一个比较完整的动画版德州扑克apk，昨天到今天打算把赛事界面整理一次，第一个遇到的问题就是切屏效果，先看效果图： &#160;&#160;&#160;&#160;&#160;&#160;看到的时候觉得应该很简单可以解决掉，但过程中遇到了两个难点问题： &#160;&#160;&#160;&#160;&#160;&#160;1、seekbar 中的thumb图标过大，网上很多资料说用minHeight、maxHeight两个字段可以解决，但是不知道是因为rp问题怎么都没有效果，算了，死心了我直接把图片大小改了（sorry，实在折腾不了了）。 &#160;&#160;&#160;&#160;&#160;&#160;2、seekbar在切换中thumb图标需要改变，可以使用setThumb方法改变，但是不显示，google呗，问题找到了： &#160;&#160;&#160;&#160;看了下SeekBar父类AbsSeekBar的源码，发现setThumb仅仅是把AbsSeekBar的mThumb指向新的Drawable，并没有对新的Thumb的Bounds进行设定，但是在draw时，canvas要根据图像的bounds去画，这就出现了问题，输出了一下bounds的Log，发现新的Thumb的bounds的top和bottom都为0，也就是新Bar的高度为0， 这肯定是画不出来的。 解决方法： 在setThumb时，对新的Thumb Drawable设置它的Bounds，比如： Rect oldbound = mOldThumbDrawable.getBounds(); int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); int left = (oldbound.left + oldbound.right - width) / 2; int top = (oldbound.top + oldbound.bottom - height) / 2; Rect newbound = new Rect(left, top, left + width, top + height); drawable.setBounds(newbound); [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前天下午（04/18）加了一会班导出了第一个比较完整的动画版德州扑克apk，昨天到今天打算把赛事界面整理一次，第一个遇到的问题就是切屏效果，先看效果图：</p>
<p><img src="http://timg01.baidu-2img.cn/timg?tc&amp;er&amp;sec=1334928941&amp;msfs=10&amp;di=d967db498d3f741137f71eeb3a425ecd&amp;size=b850_580&amp;src=http%3A%2F%2Fbs.baidu.com%2Fnetdisk-thumbnailnew%2Fcd29fbe6541bcf8f6478dc4a162b917b_850x580.jpg%3Fsign%3DMBO%3APU7TkgT12dFq%3AnsqBy3UQ24L%252BtI%252BPdRQzoS7Y5hs%253D%26response-content-type%3Dimage" alt="" /></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;看到的时候觉得应该很简单可以解决掉，但过程中遇到了两个难点问题：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、seekbar 中的thumb图标过大，网上很多资料说用minHeight、maxHeight两个字段可以解决，但是不知道是因为rp问题怎么都没有效果，算了，死心了我直接把图片大小改了（sorry，实在折腾不了了）。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、seekbar在切换中thumb图标需要改变，可以使用setThumb方法改变，但是不显示，google呗，问题找到了：<br />
<code>&nbsp;&nbsp;&nbsp;&nbsp;看了下SeekBar父类AbsSeekBar的源码，发现setThumb仅仅是把AbsSeekBar的mThumb指向新的Drawable，并没有对新的Thumb的Bounds进行设定，但是在draw时，canvas要根据图像的bounds去画，这就出现了问题，输出了一下bounds的Log，发现新的Thumb的bounds的top和bottom都为0，也就是新Bar的高度为0， 这肯定是画不出来的。<br />
解决方法：<br />
    在setThumb时，对新的Thumb Drawable设置它的Bounds，比如：<br />
    Rect oldbound = mOldThumbDrawable.getBounds();<br />
    int width = drawable.getIntrinsicWidth();<br />
    int height = drawable.getIntrinsicHeight();<br />
    int left = (oldbound.left + oldbound.right - width) / 2;<br />
    int top = (oldbound.top + oldbound.bottom - height) / 2;<br />
    Rect newbound = new Rect(left, top, left + width, top + height);<br />
    drawable.setBounds(newbound);<br />
    setThumb(drawable);<br />
<span class="bottom"></span></code></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这个来自博客：http://andynjux.blogbus.com/logs/60975275.html，问题是这哥们没有说mOldThumbDrawable怎么来的，也不知道是我傻了还是怎么的，一门心思的花时间去寻找一个方法返回thumbDrawable，好吧，几个小时都耗了，没效果，放弃，重写SeekBar一句代码搞定，重写SeekBar的setThumb方法，把thumbDrawable保存下来就好了：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p950code17'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p95017"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p950code17"><pre class="java" style="font-family:Dialog;">    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setThumb<span style="color: #009900;">&#40;</span>Drawable thumb<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        thumbDrawable <span style="color: #339933;">=</span> thumb<span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">setThumb</span><span style="color: #009900;">&#40;</span>thumb<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于切屏有很多方法实现，本来想把网址贴出来，结果没有找到，到公司再补上吧，这里说一个最简单的方法android自带的<br />
ViewFlipper，使用非常简单：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p950code18'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p95018"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p950code18"><pre class="xml" style="font-family:Dialog;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ViewFlipper</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;match_parent&quot;</span></span>
<span style="color: #009900;">                     <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
<span style="color: #009900;">                     <span style="color: #000066;">android:layout_marginTop</span>=<span style="color: #ff0000;">&quot;36dip&quot;</span></span>
<span style="color: #009900;">                     <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/gold_cash_match_view&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">                      <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">                      <span style="color: #000066;">text</span>=<span style="color: #ff0000;">&quot;第一屏&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
       <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">                      <span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
<span style="color: #009900;">                      <span style="color: #000066;">text</span>=<span style="color: #ff0000;">&quot;第二屏&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ViewFlipper<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对应控制切屏可以使用如下方法：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p950code19'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p95019"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p950code19"><pre class="java" style="font-family:Dialog;">       ViewFlipper goldView <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ViewFlipper<span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">gold_cash_match_view</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       goldView.<span style="color: #006633;">showNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//显示下一个view</span>
       goldView.<span style="color: #006633;">showPrevious</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//显示上一个view</span>
       goldView.<span style="color: #006633;">setDisplayedChild</span><span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//显示某一个view，指明序号</span></pre></td></tr></table></div>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;解说到此，源码释放：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p950code20'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p95020"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
</pre></td><td class="code" id="p950code20"><pre class="java" style="font-family:Dialog;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.esun.texas</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.Rect</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.drawable.Drawable</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Handler</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Message</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.config.Key</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.config.StatusConfig</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.config.UtilConfig</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.lib.Common</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.lib.NetWork</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">com.esun.texas.view.XSeekBar</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.json.JSONArray</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.json.JSONException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.json.JSONObject</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.ArrayList</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Date</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.HashMap</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 * Created by IntelliJ IDEA.
 * User: tuyl
 * Date: 12-4-20
 * Time: 下午4:59
 * To change this template use File | Settings | File Templates.
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> GoldActivity <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> seekMax <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> curIndex <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> XSeekBar xBar<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//滑动条</span>
    <span style="color: #000000; font-weight: bold;">private</span> ViewFlipper goldView<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> thumbs <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span>R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">match_chuji_but</span>, R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">match_zhongji_but</span>,
            R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">match_gaoji_but</span>, R.<span style="color: #006633;">drawable</span>.<span style="color: #006633;">match_dashi_but</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> progs <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">65</span>, <span style="color: #cc66cc;">135</span>, <span style="color: #cc66cc;">200</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> Intent tIntent<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//启动赛桌</span>
    <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> matchConf <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#123;</span>UtilConfig.<span style="color: #006633;">MATCH_PRIMARY</span>, UtilConfig.<span style="color: #006633;">MATCH_MIDDLE</span>,
            UtilConfig.<span style="color: #006633;">MATCH_HIGH</span>, UtilConfig.<span style="color: #006633;">MATCH_SUPER</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> JSONObject dataInfo <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 初始化
     * @param savedInstanceState
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">match_gold</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        goldView <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>ViewFlipper<span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">gold_cash_match_view</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        tIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, TableActivity.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        xBar <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>XSeekBar<span style="color: #009900;">&#41;</span>findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">match_switch_seekbar</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        seekMax <span style="color: #339933;">=</span> xBar.<span style="color: #006633;">getMax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        initSeekBar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//初始化滑动条</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> showView<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> index<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">ListView</span> list <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">ListView</span><span style="color: #009900;">&#41;</span>goldView.<span style="color: #006633;">getChildAt</span><span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>dataInfo.<span style="color: #006633;">has</span><span style="color: #009900;">&#40;</span>matchConf<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            getGoldList<span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//获取赛桌信息</span>
        <span style="color: #009900;">&#125;</span>
        goldView.<span style="color: #006633;">setDisplayedChild</span><span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> Handler loadHandle <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Handler<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        @Override
        <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> handleMessage<span style="color: #009900;">&#40;</span>Message msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">what</span> <span style="color: #339933;">==</span> StatusConfig.<span style="color: #006633;">LOADING_OVER</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//加载完成</span>
                    Common.<span style="color: #006633;">stopLoading</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">what</span> <span style="color: #339933;">==</span> StatusConfig.<span style="color: #006633;">GOLD_LIST_DATA</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//赛事加载完成</span>
                    <span style="color: #003399;">String</span> data <span style="color: #339933;">=</span> msg.<span style="color: #006633;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #000066; font-weight: bold;">int</span> rank <span style="color: #339933;">=</span> msg.<span style="color: #006633;">getData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getInt</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;rank&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    JSONObject info <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JSONObject<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    info.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> JSONArray<span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    info.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;upTime&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    dataInfo.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>matchConf<span style="color: #009900;">&#91;</span>rank<span style="color: #009900;">&#93;</span>, info<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    _showList<span style="color: #009900;">&#40;</span>rank<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//显示实现被忽略</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;GoldActivity.loadHandle&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> sendMessage<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> what, <span style="color: #000066; font-weight: bold;">int</span> rank, <span style="color: #003399;">String</span> data<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">try</span><span style="color: #009900;">&#123;</span>
            Message msg <span style="color: #339933;">=</span> loadHandle.<span style="color: #006633;">obtainMessage</span><span style="color: #009900;">&#40;</span>what<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            Bundle bu <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Bundle<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            bu.<span style="color: #006633;">putInt</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;rank&quot;</span>, rank<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            bu.<span style="color: #006633;">putString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data&quot;</span>, data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            msg.<span style="color: #006633;">setData</span><span style="color: #009900;">&#40;</span>bu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            loadHandle.<span style="color: #006633;">sendMessage</span><span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> ex<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            Common.<span style="color: #006633;">errorReport</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;GoldActivity.sendMessage&quot;</span>, ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 获取现金桌
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> getGoldList<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> rank<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        Common.<span style="color: #006633;">loading</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//启动线程开始加载</span>
        <span style="color: #003399;">Thread</span> t <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Thread</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Runnable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003399;">String</span> data <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;-----私有数据-----&quot;</span><span style="color: #339933;">;</span>
                sendMessage<span style="color: #009900;">&#40;</span>StatusConfig.<span style="color: #006633;">GOLD_LIST_DATA</span>, rank, data<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                loadHandle.<span style="color: #006633;">sendEmptyMessage</span><span style="color: #009900;">&#40;</span>StatusConfig.<span style="color: #006633;">LOADING_OVER</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        t.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * 初始化滑动条
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> initSeekBar<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        xBar.<span style="color: #006633;">setOnSeekBarChangeListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> SeekBar.<span style="color: #006633;">OnSeekBarChangeListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onProgressChanged<span style="color: #009900;">&#40;</span>SeekBar seekBar, <span style="color: #000066; font-weight: bold;">int</span> i, <span style="color: #000066; font-weight: bold;">boolean</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">int</span> index <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span>i<span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span>seekMax<span style="color: #339933;">/</span>thumbs.<span style="color: #006633;">length</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>curIndex <span style="color: #339933;">!=</span> index<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    curIndex <span style="color: #339933;">=</span> index<span style="color: #339933;">;</span>
                    setThumb<span style="color: #009900;">&#40;</span>xBar, index, i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    showView<span style="color: #009900;">&#40;</span>index<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> setThumb<span style="color: #009900;">&#40;</span>XSeekBar seekBar, <span style="color: #000066; font-weight: bold;">int</span> index, <span style="color: #000066; font-weight: bold;">int</span> prog<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                Drawable bdraw <span style="color: #339933;">=</span> getResources<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getDrawable</span><span style="color: #009900;">&#40;</span>thumbs<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                Rect oldbound <span style="color: #339933;">=</span> seekBar.<span style="color: #006633;">thumbDrawable</span>.<span style="color: #006633;">getBounds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #000066; font-weight: bold;">int</span> width <span style="color: #339933;">=</span> bdraw.<span style="color: #006633;">getIntrinsicWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">int</span> height <span style="color: #339933;">=</span> bdraw.<span style="color: #006633;">getIntrinsicHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">int</span> left <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>oldbound.<span style="color: #006633;">left</span> <span style="color: #339933;">+</span> oldbound.<span style="color: #006633;">right</span> <span style="color: #339933;">-</span> width<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">int</span> top <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>oldbound.<span style="color: #006633;">top</span> <span style="color: #339933;">+</span> oldbound.<span style="color: #006633;">bottom</span> <span style="color: #339933;">-</span> height<span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
                Rect newbound <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Rect<span style="color: #009900;">&#40;</span>left, top, left <span style="color: #339933;">+</span> width, top <span style="color: #339933;">+</span> height<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                bdraw.<span style="color: #006633;">setBounds</span><span style="color: #009900;">&#40;</span>newbound<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                seekBar.<span style="color: #006633;">setThumb</span><span style="color: #009900;">&#40;</span>bdraw<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                seekBar.<span style="color: #006633;">setThumbOffset</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onStartTrackingTouch<span style="color: #009900;">&#40;</span>SeekBar seekBar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
&nbsp;
            @Override
            <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onStopTrackingTouch<span style="color: #009900;">&#40;</span>SeekBar seekBar<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">int</span> prog <span style="color: #339933;">=</span> seekBar.<span style="color: #006633;">getProgress</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">int</span> pprog <span style="color: #339933;">=</span> seekMax<span style="color: #339933;">/</span>thumbs.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
                <span style="color: #000066; font-weight: bold;">int</span> index <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">float</span><span style="color: #009900;">&#41;</span>prog<span style="color: #339933;">/</span>pprog<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                index <span style="color: #339933;">=</span> index <span style="color: #339933;">&gt;=</span> thumbs.<span style="color: #006633;">length</span> <span style="color: #339933;">?</span> thumbs.<span style="color: #006633;">length</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #339933;">:</span> index<span style="color: #339933;">;</span>
&nbsp;
                seekBar.<span style="color: #006633;">setProgress</span><span style="color: #009900;">&#40;</span>progs<span style="color: #009900;">&#91;</span>index<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/950/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>二零一二年三月十八日</title>
		<link>http://www.quou.cn/archives/947</link>
		<comments>http://www.quou.cn/archives/947#comments</comments>
		<pubDate>Sun, 18 Mar 2012 13:38:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[会说话的狗]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=947</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160;上周末除了面了个事还出现一个转折，htao让我写一下android的德州，上周1我给阿星道歉了，之前我说这两个月来我一点都没有学到，不想再写自动化测试应用，调试第三方的软件太痛苦，很多未知因素导致最后半途而废不得不放弃重来。年少轻狂，无知的举动，非常抱歉。说正题，xing和htao打算让我尝试一下android方面的开发，天啊，我最大的动力，不过只能在每天晚上回家看书，自学，终于可以搬到台面正大光明的学习编写了。从13号下午到周5，我把所有的时间全部花费再这个德州应用上了。昨天，在家一整天，全用来写代码了，2点钟睡觉，很久才入睡，真怕会猝死在床上，程序员的悲哀。 &#160;&#160;&#160;&#160;&#160;&#160;今天打算调整一下，10点起床和maq、long、fan一起去海岸城看了《战马》，中午qing在33间堂请了一顿，看完电影回来已经5点了，晚上我请他们在小肥羊涮了一下，算是给qing饯行，离开也会有难受，也会有不舍，珍重，朋友。]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上周末除了面了个事还出现一个转折，htao让我写一下android的德州，上周1我给阿星道歉了，之前我说这两个月来我一点都没有学到，不想再写自动化测试应用，调试第三方的软件太痛苦，很多未知因素导致最后半途而废不得不放弃重来。年少轻狂，无知的举动，非常抱歉。说正题，xing和htao打算让我尝试一下android方面的开发，天啊，我最大的动力，不过只能在每天晚上回家看书，自学，终于可以搬到台面正大光明的学习编写了。从13号下午到周5，我把所有的时间全部花费再这个德州应用上了。昨天，在家一整天，全用来写代码了，2点钟睡觉，很久才入睡，真怕会猝死在床上，程序员的悲哀。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;今天打算调整一下，10点起床和maq、long、fan一起去海岸城看了《战马》，中午qing在33间堂请了一顿，看完电影回来已经5点了，晚上我请他们在小肥羊涮了一下，算是给qing饯行，离开也会有难受，也会有不舍，珍重，朋友。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/947/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>那些个不起眼的基础</title>
		<link>http://www.quou.cn/archives/943</link>
		<comments>http://www.quou.cn/archives/943#comments</comments>
		<pubDate>Mon, 12 Mar 2012 07:28:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[系统架构]]></category>
		<category><![CDATA[基础]]></category>

		<guid isPermaLink="false">http://www.quou.cn/?p=943</guid>
		<description><![CDATA[上周去面试，被几个知识问的无语，等慢慢想起一个就补充一个。 1、nginx的安装和使用。如果不用yum安装，可以去官网下载nginx-1.0.13.tar.gz包，tar -zxvf解压，执行： ./configure make make install 安装过程中出现警告：make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。网上有方法，不过我是修改了本地时间： date -s 03/12/2012 date -s 15:02:00 安装成功后可以进入 /usr/local/nginx/目录（如果没有自己指定）。执行： 启动：sbin/nginx -c ./conf/nginx.conf 载入配置文件 重启：kill -HUP `cat logs/nginx.pid` 正常停止: kill -QUIT `cat logs/nginx.pid` 快速停止: kill -TERM `cat logs/nginx.pid` 强制停止: kill -9 `cat logs/nginx.pid` 2、mysql在物理空间上存储的有哪些文件。先查看mysql配置文件: vi /etc/my.cnf #可以找到datadir=/var/lib/mysql 查看/var/lib/mysql中进入一个库，如果是MyISAM引擎保护 table.frm #表结构文件 table.MYI #索引文件 table.MYD #数据文件 InnoDB采用表空间（tablespace）来管理数据，存储表数据和索引: ibdata1、ibdata2等：系统表空间MySQL数据库文件，存储InnoDB系统信息和用户数据库表数据和索引，所有表共用 ibd文件：单表表空间文件，每个表使用一个表空间文件（file per [...]]]></description>
			<content:encoded><![CDATA[<p>    上周去面试，被几个知识问的无语，等慢慢想起一个就补充一个。<br />
<strong>1、nginx的安装和使用。</strong>如果不用yum安装，可以去官网下载nginx-1.0.13.tar.gz包，tar -zxvf解压，执行：<br />
<code><br />
./configure<br />
make<br />
make install<br />
</code></p>
<p>安装过程中出现警告：make[1]: 警告:检测到时钟错误。您的创建可能是不完整的。网上有方法，不过我是修改了本地时间：<br />
<code><br />
date -s 03/12/2012<br />
date -s 15:02:00<br />
</code><br />
安装成功后可以进入 /usr/local/nginx/目录（如果没有自己指定）。执行：<br />
<code><br />
启动：sbin/nginx -c ./conf/nginx.conf 载入配置文件<br />
重启：kill -HUP `cat logs/nginx.pid`<br />
正常停止: kill -QUIT `cat logs/nginx.pid`<br />
快速停止: kill -TERM `cat logs/nginx.pid`<br />
强制停止: kill -9 `cat logs/nginx.pid`<br />
</code></p>
<p>2、<strong>mysql在物理空间上存储的有哪些文件。</strong>先查看mysql配置文件:<br />
<code><br />
    vi /etc/my.cnf #可以找到datadir=/var/lib/mysql<br />
</code><br />
查看/var/lib/mysql中进入一个库，如果是MyISAM引擎保护<br />
<code><br />
    table.frm #表结构文件<br />
    table.MYI #索引文件<br />
    table.MYD #数据文件<br />
</code><br />
   InnoDB采用表空间（tablespace）来管理数据，存储表数据和索引:<br />
   ibdata1、ibdata2等：系统表空间MySQL数据库文件，存储InnoDB系统信息和用户数据库表数据和索引，所有表共用<br />
   ibd文件：单表表空间文件，每个表使用一个表空间文件（file per table），存放用户数据库表数据和索引<br />
   日志文件： ib_logfile1、ib_logfile2 </p>
<p><strong>3、一个js问题，怎么通过class获取元素。</strong>由于只有部分浏览器支持document.getElementsByClassName方法，Ie下需要通过getElementsByTagName方法遍历所有子节点，但IE5下没有该方法，需要使用document.all才能获取到。http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1529640.html 这篇博客写的很全面。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.quou.cn/archives/943/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

