摘要: 在开发的过程中,有时候需要获取窗口的大小,在OnCreate中由于窗口还未绘制因此通过GetWidth()与GetHeight()得到的宽高都为0,那应该如何获取窗口的大小呢,上代码:LinearLayout layout = (LinearLayout) findViewById(R.id.lay... 阅读全文
posted @ 2014-06-25 11:20 啊毕 阅读(1440) 评论(0) 推荐(0) 编辑
摘要: 设置SurfaceView背景透明:setZOrderOnTop(true);SurfaceHolder holder = this.getHolder();holder.setFormat(PixelFormat.TRANSLUCENT);清除Canvas内容的实现方式一:Canvas canva... 阅读全文
posted @ 2014-06-24 11:19 啊毕 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 正常情况下TextView的文本内容是水平显示的,那如何做到让内容垂直显示呢,于是做了一些尝试,自定义控件继承TextView,重写onDraw函数,代码如下: @Override protected void onDraw(Canvas canvas) { can... 阅读全文
posted @ 2014-06-12 16:52 啊毕 阅读(2299) 评论(0) 推荐(0) 编辑
摘要: 初学Android,不得不承认Android在UI效果实现上的强大,完全不在html5之下,不过这还得归功于Android丰富的SDK,以下尝试借助ViewFlipper类来实现通过手势滑动图片的效果,先上Java代码:package com.example.sportdemo;import a... 阅读全文
posted @ 2014-06-12 16:07 啊毕 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 设计模式的六大原则:1、开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 对扩展开放,对修改关闭2、单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。3、依赖倒转原则(DIP),高层模块不应该依赖低层模块,两个都应该依赖抽象。抽象不应该依赖细节,细节应该依赖于抽象。 针对接口编程,不要对实现编程4、理氏代换原则(LSP),子类型必须能够替换掉它们的父类型。5、迪米特法则(LoD):如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 ... 阅读全文
posted @ 2013-03-28 19:51 啊毕 阅读(138) 评论(0) 推荐(0) 编辑
摘要: PE(Portable Executable)可移植的执行体,Win32平台下的可执行文件格式。常见的exe、dll、sys、scr都是PE文件。分析PE文件格式,直接修改 此种方式需要对PE文件的格式比较了解,才能进行修改,否则很可能将文件损坏。 本文主要描述第二种方式:通过Windows API进行修改BeginUpdateResource1 HANDLE WINAPI BeginUpdateResource(2 _In_ LPCTSTR pFileName,3 _In_ BOOL bDeleteExistingResources4 );参数pFileName为需要修改资源... 阅读全文
posted @ 2013-03-28 16:44 啊毕 阅读(1094) 评论(0) 推荐(0) 编辑
摘要: SEH(structured exception handling)结构化异常处理Windows提供的异常处理机制,与语言无关。SEH使用关键字:__try, __except, __finally, __leave。__try语句,定义受监控的代码模块。__except语句,定义的异常处理模块。执行过程:受监控的代码模块被执行。如果没有出现异常,控制流转入__except子句之后的代码模块中。否则出现异常,控制流转入__except后面的表达式中,计算表达式值,再根据这个值来做相应的处理。EXCEPTION_CONTINUE_EXECUTION (–1) 异常被忽略,控制流将在异常出现的点之 阅读全文
posted @ 2013-03-28 15:05 啊毕 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 问题背景:1、在主线程中创建Socket,并Connect到服务器,同时响应FD_CONNECT事件作相关处理。2、通过工作线程调用Socket连接函数,发现没有接收到Connect事件通知。问题分析与解决: 每个线程都有自己的消息队列(非GUI线程在调用User或GDI函数以后,系统才会为该线程创建消息队列),因此在一个线程中发送的消息不能被另一个线程接收,通过显式的调用API函数PostThreadMessage可以将消息发送给其他线程。 1 BOOL PostThreadMessage( 2 DWORD idThread,3 UINT Msg, ... 阅读全文
posted @ 2013-03-07 19:44 啊毕 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 解决方法有两种:1、将程序安装在英文路径即页面全路径中不含中文。2、修改系统区域设置,改为中国,具体如下: Control Panel->Region and Language Formats Tab->Format->Chinese(SIMPLIFIED,PRC) Location Tab->Current Location->China 阅读全文
posted @ 2013-02-27 17:09 啊毕 阅读(255) 评论(0) 推荐(0) 编辑