随笔分类 - 编程
让你的Android程序支持2.2版系统的APP2SD功能
摘要:APP2SD是Android2.2(冻酸奶)开始支持的新特性,可以让程序安装到存储卡,仅在手机内存(ROM)中保留一些必要的文件。
要想在自己程序中支持这一特性,需要在创建项目时将Build Target设为2.2(或更高版本)……
阅读全文
关于Android的振动控制器(Vibrator)报SecurityException异常的问题
摘要:网上介绍振动控制器代码的帖子往往都没有提到申请权限这点,使用Vibrator振动时必须在AndroidManifest.xml配置文件中申请android.permission.VIBRATE权限: ...
阅读全文
Android SurfaceView 绘图及帧频处理方法修正
摘要:此文是针对上一篇《Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法》的修正。 帧频处理 今天我在审视上篇示例代码时猛然发现我犯了个低级错误,致使帧频达不到预期,这个错误在这里: ...
阅读全文
Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
摘要:SurfaceView在Android中用作游戏开发是最适宜的,本文就将演示游戏开发中常用的两种绘图刷新策略在SurfaceView中的实现方法。
首先我们来看一下本例需要用到的两个素材图片:
bj.jpg就是一个渐变图,用作背景。
question.png是一个半透明的图像,我们希望将它放在上面,围绕其圆心不断旋转。
实现代码如下……
阅读全文
Db4o中需要严格警惕类的继承问题
摘要:先来看一个简易类图: 如果你打算将这样的类存储在Db4o中的话,那么会很容易产生灵异现象,我今天就亲历了…… 为产品对象添加一个附图后保存,下次重新开启数据库时读取到的产品的附图仍然是空的,而如果你...
阅读全文
关于Asp.Net中FileUpload控件属性PostedFile.ContentType的提示
摘要:PostedFile.ContentType这个属性通常用来判断上传文件的MIME类型,我们通常以此来拒绝某些类型的上传,比如仅允许上传图像文件,然而这个属性其实是很不稳定的: MIME类型没有统一...
阅读全文
Asp.Net复合控件疑难与解决——尴尬的生命周期
摘要:今天打算用Asp.Net复合控件技术制作一个服务器端的文件管理控件,基本实现构想如下:
设置一个属性,通过该属性指定此控件所管理的根目录路径
递归向下扫描指定的根目录下的所有子目录及文件,用TreeView控件将其显示出来
使TreeView显示复选框,用以勾选待处理文件,然后做进一步处理(复制、移动、删除)
在TreeView中单击某项后,可以对其进行重命名操作,也可以指示将勾选的文件复制、移动到所选目录中
TreeView基本效果如下图……
阅读全文
关于Db4o的查询测试及疑惑
摘要:在Entity Framework中,我们通过Take()方法可以仅取得指定数量的数据,并且Entity Framework也只是从数据库中取出指定数量的数据而直接返回。 而Db4o虽然也可以在原生查...
阅读全文
Db4o结合Linq、Lambda表达式的简单示例
摘要:大多数人接触Db4o的查询,都是从“样本查询”(Query by Example)开始的,这种查询方式简单但不方便,功能和性能也很受局限。以下是引自官方的样本查询示例:
// retrievePilotByName
Pilot proto=new Pilot("Michael Schumacher",0);
ObjectSet result=db.get(proto);
listResult(result);
这种查询要求我们先建立一个样本,然后再交由Db4o根据此样本返回符合条件的数据,其主要的不便之处在于对类默认值的处理及组合条件查询上,同时其执行性能是很差的。
而当Db4o开始支持.Net 3.5之后,我们就有了更为简单且又十分方便而强大的选择了,让我们来一起领略Db4o与.Net 3.5擦出的火花之美吧。
阅读全文
WinForm实现鼠标悬停显示控件
摘要:在某些需频繁操作的环节中,为提高效率、减少劳动,可以在操作细节上下功夫,以带来更好的用户体验。
今天介绍的鼠标悬停显示功能就是一例,看似仅仅节省了一次点击,实则在繁复操作中能够为用户节约很多体力,提高舒适度。
本例中的基本需求是:
鼠标移入设置区域后,直接弹出详尽设置内容,并当进行了设置或鼠标移出弹出的设置区域后,自动关闭弹出的设置区域。
在这里,我设计了5个按钮,以及一个日历控件,该日历控件就作为我们的详细设置内容,将其Visible属性设为False以隐藏。
阅读全文
Eclipse 3.6 更新中文语言包的方法
摘要:在网上找3.6版的中文包更新方法,总是找不到,找到的大都是3.3、3.4的更新方法:
看到论坛里太多的人要eclipse的中文语言包,但自从3.2.1之后官方不提供单独的下载,所以很多朋友用了3.3.x的版本,原来的语言包插件都不能使用了。今天到eclipse官方查资料,看到了一个新的子项目Babel (网址:http://www.eclipse.org/babel/downloads.php)按照官方介绍可以下载到最新的语言插件包,在此将这个消息告诉大家,希望对大家有所帮助。
注:到我发帖为止我只看到官方提供在线更新的方式提供下载。
用eclipse3.3.x里自己带的software updates
升级地址填写http://download.eclipse.org/t
阅读全文
网页内嵌Windows Media Player播放器的多文件播放方法
摘要:网页内嵌Media Player播放器很简单,以下代码即可完成一个简单的播放器:运行效果: 如何让播放器可以播放多个音频/视频文件?没法直接在HTML中添加多重filename参数实现多文件播放,可行的方法是:自行建立播放列表,然后将filename参数指向播放列表的位置。
以下C#代码用于创建一个Windows Media Player所支持的播放列表文件:
...
阅读全文
WPF命中测试示例(二)——几何区域命中测试
摘要: 接续上次的命中测试,这次来做几何区域测试示例。
示例
首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置:
当前设计视图界面如下:
接下来,转到窗体的“Window_Loaded”事件处理函数,编写函数代码…
阅读全文
WPF命中测试示例(一)——坐标点命中测试
摘要:命中测试也可被称为碰撞测试,在WPF中使用VisualTreeHelper.HitTest()方法实现,该方法用于获取给定的一个坐标点或几何形状内存在的视觉元素,此次我们的示例是坐标点命中测试。示例
首先使用Microsoft Expression Blend 3创建一个新的WPF应用程序项目:
在窗体上随意绘制几个图形,这里分别使用了:Rectangle、Ellipse、Path元素。
在右下角绘制一个ListBox控件,命名为l1:
在视觉树面板中选中Window:
在属性面板中单击事件类别,然后再MouseUp事件右侧空白处双击以添加事件处理:
至此,前台XAML代码如下:…
阅读全文
自用扩展方法分享
摘要:自从用上扩展方法以来,就欲罢不能了,它们大大提升了我的代码编写效率,现在我已对其产生了高度依赖。在此分享一下自己的常用扩展方法集,方便大家使用。
(其中有些是借鉴或挪用自其它博友的文章,在此尤其感谢鹤冲天的诸多分享)
这些都是我这里使用频率最高的扩展,希望对大家也同样有用:)
阅读全文
简单的自动更新程序实现
摘要:本文将演示一种桌面程序自动更新方案,其步骤比较多,但原理非常简单,通用性尚可,对于小型应用来说,直接拿去就可以用了。 原理 服务器端的结构是这样的: 其工作原理如下:Update.asmx仅提供一个功能,就是检测是否需要更新,在需要更新的时候就返回一个更新地址,通常情况下返回的地址就是Download.ashx,而在某些特殊情况下,也可以修改服务端使之从其他Url提供更新下载。检测是否需要更新的的具体做法是:首先获取Updata目录中的主程序版本号,再获取数据库中的最新版本号,两者对比。如果相同则直接与客户端提供的版本号相对比并返回结果;如果不同则将主程序版本号写入数据库,然后生成新的更新文件包,直接向客户端返回更新地址。
Download.ashx的功能仅仅是将最新版本更新文件
阅读全文
WPF中不规则窗体与WebBrowser控件的兼容问题解决办法
摘要:这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序。
播放器普遍都要有个看起来比较酷的外观,于是我就给设计了个不规则形状的带透明边框的外观,如下图:
……但这个设计整合到WPF中时,却遇到了一个头疼的BUG:
只要设置窗体为AllowsTransparency="True" WindowStyle="None",内嵌的WebBrowser就无法显示了,但它还不是真的没有了,里面加载的视频还会正常播放、出声,甚至用鼠标去点网页内容还能正常交互,就是啥也看不到。
阅读全文
WebBrowser抓图示例——截取网页上的验证码图片
摘要:最近和一位朋友探讨获取WebBrowser访问的网页中验证图片的方法,起先想到的就是通过WebClient直接去下载当前页面中引用的验证码图片,但继而想到这会涉及很多问题,一是验证码可能会在每次请求时都发生变化,二是将WebClient与WebBrowser的Cookies甚至Session关联起来是件很难的事。
而后就想到了可以放弃WebBrowser,始终使用WebRequest进行较为底层的访问,以避免多次获取验证码产生变化导致不一致的情况,不过这种办法操作起来还是比较复杂的。
然后又想到这种变通的方法——抓图。只需要直接通过WebBrowser截图,并将验证码以外的部分裁剪掉,就可以了。
阅读全文
在配置文件(.settings、.config)中存储自定义对象
摘要:我前面曾写过一篇《使用配置文件(.settings、.config)存储应用程序配置》,我在其中指出“settings无法实现对一些复杂类型及自定义类型的支持”。
而今天我发现其实它是支持自定义类型的,仅仅是不能支持本项目中的自定义类型,可以支持引用的项目或类库的自定义类型。至于为什么不支持本项目中的自定义类型,我也不得而知,猜想可能是怕加载时造成冲突吧。
阅读全文
EntityDataSource中的SessionParameter使用小记
摘要:今天在用到SessionParameter的时候真是抓狂了,改了半天都报错,网上搜也没有找到类似遭遇的记录,费了好半天才鼓捣出来~~在此记录一下过程。 首先插入一个EntityDataSource,并...
阅读全文