摘要: 例子如下:Android 自定义View 密码框 例子1 良好的自定义View易用,标准,开放。一个设计良好的自定义view和其他设计良好的类很像。封装了某个具有易用性接口的功能组合,这些功能能够有效地使用CPU和内存,并且十分开放的。但是,除了开始一个设计良好的类之外,一个自定义view应该:l ... 阅读全文
posted @ 2014-06-20 16:07 雨知 阅读(45621) 评论(1) 推荐(4) 编辑
摘要: 暴露您view中所有影响可见外观的属性或者行为。 详细步骤见:Android 自定义View步骤 可以通过XML定义影响外边和行为的属性如下 边框圆角值,边框颜色,分割线颜色,边框宽度,密码长度,密码大小,密码颜色 同时支持原来EditText功能,可以获得数据值,数字键盘设置等 https://g 阅读全文
posted @ 2014-06-20 15:37 雨知 阅读(16551) 评论(21) 推荐(4) 编辑
摘要: 一个简单精致的jQuery带箭头提示框插件插件写好快一年了,和一个 弹出框插件(点击查看) 一起写的,一直没有整理出来,昨天得功夫整理并放到了github上,源码和网站均可在线看或下载。CSS中的三大要素,位置、大小、可见性,在这个插件中均有体现,直接看代码吧。示例地址 http://tianshaojie.github.io/tooltips/example.html1.0.0位置:提示框可显示在目标元素的上下左右 对齐:提示框与目标元素的对齐方式,自动调节箭头显示位置,指向目标元素中间位置 支持:鼠标划过和点击显示 支持:自定义高宽 支持:提示框自动关闭 支持:提示框失去焦点关闭 支持:提 阅读全文
posted @ 2014-02-12 10:49 雨知 阅读(9618) 评论(35) 推荐(25) 编辑
摘要: Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习。今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助。另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容。项目篇:Apollo音乐播放器:就一个播放器,但是实现的很好oschina客户端:oschina网站的客户端哦,wp版,iOS版都有开源xabber实时聊天工具(基于xmpp协议):不评价了,反正算是同类中比较好的了四次元新浪微博客户端:今天才知道是开源的,赶紧收藏GoogleIO:谷歌开发者大会应用,虽然有点难懂,还是很有参 阅读全文
posted @ 2013-12-31 09:40 雨知 阅读(6400) 评论(3) 推荐(7) 编辑
摘要: 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助大家从头开始学习Android开发,其他则面向较高级的开发者。希望推荐的这些内容对你有帮助。官方网站1、谷歌Android开发者页面这里是主站点,在这您可以找到一切资源帮助您开始Android开发。此站包含了很多关于学习基础知识的资源,完整的API引用,以及你开始开发所需的各种工具。此站共分为五个部分:作为初学者,你应该从工具开始,这部分讲解了如何安装AndroidSDK。教程为你提供了关于Android的基本介绍,教给你如何写出你的第一个程序。它包括很多的资源,即便成为高级程序员你仍需阅读这里面的文章。API指 阅读全文
posted @ 2013-12-30 17:32 雨知 阅读(3905) 评论(4) 推荐(7) 编辑
摘要: 一.形象的感官一下流畅度概念1. 这是官方给出的概念:Android流畅运行,需要运行60帧/秒, 则需要每帧的处理时间不超过16ms。2. 每秒帧数,实际上就是指动画或视频每秒放映的画面数。因此“帧”的概念就是指“画面”,1幅画就叫做“1帧”,每秒帧数指的就是“每秒播放的画面数”。帧数就是在1秒钟... 阅读全文
posted @ 2013-12-26 18:05 雨知 阅读(11469) 评论(2) 推荐(13) 编辑
摘要: 说明:本文档只针对Cordova(PhoneGap)的Android端,基于Cordova2.1.0版本。一.总体结构Cordova的目标是用HTML,JS,来完成手机客户端的开发,并且是只开发一次可以在各种手机平台上跑,所以理想状态是用JS去控制所有事件。Cordova基于WebView组件。每个继承自DroidGap的Activity对应一个独立的CordovaWebView。Cordova提供了一些列的JS接口来访问Android的native(详细参见http://docs.phonegap.com/en/2.1.0/)。以插件(Plugin)的形式提供自定义接口给JS端访问。二.一些 阅读全文
posted @ 2013-12-25 15:24 雨知 阅读(5950) 评论(0) 推荐(4) 编辑
摘要: 通过BitmapFun在项目中使用,结合代码了解一下BitmapFun加载图片的原理,以及最佳使用实践。本文说明不包括BitmapFun的缓存部分。Android开发在使用ListView和GridView时,可能会有很多网络图片需要加载,通常我们会为每个图片加载启动一个Thread或者直接使用官方提供的AsyncTask,来做Http异步加载,但当每个ImageView子视图都触发一个AsyncTask来异步加载图片时,这样就会产生如下问题:1. 当用户快速滑动时,ImageView已经被回收,而绑定的线程还在运行,浪费CPU,浪费内存。2. 无法确保当前视图在结束时,分配的视图已经进入循环 阅读全文
posted @ 2013-12-07 15:07 雨知 阅读(9155) 评论(1) 推荐(2) 编辑
摘要: 原因开发过程中遇到button.performClick()无效,原因是View.performClick()需要再UI线程中调用才会有效执行。响应系统调用的方法(比如报告用户动作的onKeyDown()或一个生命周期回调方法)永远在界面线程中进程,所以onCreate里面调用button的performClick没问题, 而通过code直接调用相当于是代码执行,并不会触发android的UI线程。什么是UI线程,以下来自官网翻译当一个应用被启动,系统创建一个执行线程,叫做"main"。这个线程是十分重要的,因为它主管向用户界面控件派发事件。其中包含绘图事件。它也是你的应用 阅读全文
posted @ 2013-11-21 17:08 雨知 阅读(6484) 评论(0) 推荐(1) 编辑
摘要: 01转换法:思路是开一个数组,其下标表示1到m个数,数组元素的值为1表示其下标代表的数被选中,为0则没选中。首先初始化,将数组前n个元素置1,表示第一个组合为前n个数。然后从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为“01”组合;同时将其左边的所有“1”全部移动到数组的最左端。当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。例如求5选3的组合:1 1 1 0 0 //1,2,31 1 0 1 0 //1,2,41 0 1 1 0 //1,3,40 1 1 1 0 //2,3,41 1 0 0 1 //1,2,51 0 1 阅读全文
posted @ 2013-10-18 10:11 雨知 阅读(7808) 评论(3) 推荐(3) 编辑