- 博客(49)
- 资源 (30)
- 收藏
- 关注

原创 我的新博客——BarryZhang.com
优快云这里很好,但还是自己的站点写东西感觉更爽一点吧。自己弄了个独立域名的博客——BarryZhang.com,欢迎访问。另外,欢迎关注公众号【不只Android】
2014-03-20 09:22:03
2848
原创 Hi,我们再来聊一聊Java的单例吧
单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗?
2017-06-24 16:41:16
1509
原创 proguard如何会导致json解析失效?
1. 楔子json数据的解析是这个星球上99%的Android程序猿都会遇到的问题,而其中的大部分,都会使用Gson,故事就是从这里发生……
2017-04-06 21:21:26
2360
原创 如何画一个正多边形
本文由BarryZhang原创,同时首发于barryzhang.com,简书,非商业转载请注明作者和原文链接。场景给定一个指定的正方形的区域,要求在该区域内画一个正N边形(正三角形、正方形、正五边形……) public static void drawPolygon (RectF rect, Canvas canvas, Paint p, int n) { // draw……}分析要用到
2016-12-13 10:46:15
4652
原创 彻底搞懂startActivityForResult在FragmentActivity和Fragment中的异同
Activity、FragmentActivity、Fragment中都有`startActivityForResult()`方法,也都有用以接收结果的`onActivityResult()`方法,那他们有什么区别吗?用法上有什么不同吗?
2016-11-19 12:49:42
14809
1
原创 Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
前言开发做得久了,总免不了会遇到各种坑。 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑——来来来,我们慢慢看。
2016-10-28 09:51:44
6438
原创 Android开发:为什么要使用Kotlin?
在使用Kotlin进行了一段时间的Android开发之后,我深深地体验到了它的美好,觉得是时候把它拿出来安利一下了。
2016-10-20 21:36:53
4607
原创 只需五分钟,开始使用Kotlin开发Android
1:本文是一篇描述如何在Android上开始一个Kotlin的HelloWorld程序的说明文。 2:其实你如果你网络够给力的话,也许三分钟就可以了。当然网络不够给力,也可能十分钟还没整好~
2016-10-20 21:35:14
7758
原创 【Android】真机调试新姿势:无线连接
在进行Android开发时,一般我们都是用usb线把手机和电脑连接起来进行调试工作。但如果你觉得这样不够酷的话,可以尝试一下无线连接,颇简单,GO!
2016-10-09 23:01:37
5453
原创 【Android】WebView:onReceiveError的应用与变迁
onReceiveError是WebViewClient提供的方法,用于网页产生错误时进行回调处理。1. 旧版的onReceiveError在API23之前,该方法的签名是:public void onReceivedError(WebView view, int errorCode,String description, String failingUrl);文档是: Re
2016-10-04 12:43:54
11192
原创 【Android】你可能还不知道的elevation、以及Z值等
Android你可能还不知道的elevation以及Z值等elevation以及Z值是什么有什么用处呢影响View的阴影影响View相互阻挡顺序还有CardView
2016-09-29 11:42:00
15446
原创 Android: NullPointerException when using RelativeLayout with measure()
使用measure()方法计算view的高度时,如果view中含有RelativeLayout布局,就有可能出现这样的错误: 07-13 13:18:34.330: E/AndroidRuntime(12098): java.lang.NullPointerException 07-13 13:18:34.330: E/AndroidRuntime(12098): at andro
2015-07-13 23:43:25
3127
原创 解决下载Android Build-tools 19.1.0失败
准备从Eclipse转到Android Studio了。今天尝试Android Studio的时候,被它提醒我SDK的Android Build-tools版本过低,需要升级。 于是打开Android SDK Manager,它顺利地帮我找到了Android SDK Build-tools的19.1版本,但是下载的时候却死活下载不了……
2015-04-01 21:34:46
25545
原创 Android:防止过快点击造成多次事件
onClick事件是Android开发中最常见的事件,本文介绍了一个小技巧,能防止view被误操作快速重复点击时,而重复产生事件。
2015-03-20 23:57:45
52098
3
原创 Android:自定义DialogFragment的内容和按钮
小问题,记录下~Android4.0以后开始推荐使用DialogFragment代替Dialog。Android的官方文档中给了两个示例:一个Basic Dialog示例了如何自定义窗口内容——重写onCreateView方法。 一个Alert Dialog示例了如何自定义弹窗的正负按钮——重写onCreateDialog方法。 好的,那么问题来了在实际应用中经常是
2014-12-13 22:21:35
7884
原创 Android客户端验证Licence的原理
需求: 限制App的使用,使App只能在有许可的设备上运行。原理: 让App在每次运行的时候都连接服务器进行合法性验证——当然是一个很成熟可靠的方案;但是这样做的局限也是每次都需要连接服务器,对一些不需要联网或者只连局域网的内部应用来说就太不可行了——服务端验证不可行的话就只能在客户端验证了。
2014-07-31 09:59:03
6326
1
原创 JAVA反射修改常量,以及其局限
对于基本类型的静态常量,JAVA在编译的时候就会把代码中对此常量中引用的地方替换成相应常量值。——这本身是JVM的优化代码提高运行效率的一个行为,但是就会导致我们在用反射改变此常量值时出现类似不生效的错觉。这大概是JAVA反射的一个局限吧——修改基本类型的常量时,不是太可靠。
2014-04-25 01:14:56
22785
4
原创 javascript的函数内部变量的作用域
javascript中的函数内部任何位置声明的变量,都在整个函数内部有效。每种语言都有不同的特性,学习语言的时候,如果不透彻,容易有许多想当然的理解,就很容易处错误。自己学习的时候还是要注意呀~
2014-04-17 00:14:22
3651
原创 Android的多语言实现
以前就知道Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源什么的,但是一直没有实际使用过。 最近公司的项目要用到多语言于,是就研究了一下——果然很简单啊。要使用多语言,首先肯定要有为不同语言准备的资源。只需要按照Android提供的规范,对不同语言下的资源文件夹进行对应的命名即可。比如我们知道/valus是Android的默认简单资源(字符串、数值、颜色等)的
2014-04-11 12:37:28
21740
原创 Android应用密码的实现
最近做了一个demo——功能是给自己的应用加锁,访问的时候需要输入密码,并且每次锁屏再开之后都需要重新输入密码。主要思路:设置一个全局变量表示当前应用的状态(布尔值:已锁定|已解锁),在每个Activity显示之前进行状态判断,如果当前为锁定状态,则终止显示,跳转到密码界面。在密码界面输入正确的密码之后,将应用状态改为已解锁,并返回继续显示之前的Activity;否则继续要求输入密码。
2014-03-27 01:42:51
13476
1
原创 我的Android笔记(十四)—— 在应用中集成科大讯飞的语音识别技术
语音识别技术最近貌似是越来越火了。再前几天科大讯飞还刚刚发布了讯飞语点——一个据说要挑战siri的应用。……好吧,对这些的东西讨论要说起来就多了。本文主要讲如何在自己的android应用中集成语音识别技术——自然,是使用科大讯飞的sdk。讯飞的语音sdk是需要申请的,地址是:http://dev.voicecloud.cn/developer.php?vt=1 。申请一个讯飞的开发
2012-03-27 23:57:36
30355
2
原创 我的Android笔记(十三)——Muilti-touch 双指缩放的实现探索
Multi-Touch(多点触控)可谓是现代智能手机最令人赞叹的功能之一,想当年乔爷第一次在iphone的发布会上演示多点触控功能的时候,台下的掌声和口哨声那叫热烈啊~~~~本文主要讨论文字缩放,以TextView为例。先放上效果图吧: 两指缩放的基本原理:判断当前在TextView上的点有几个,当有两个(或更多时)点,并且点之间的距离在不断增大时,放大文字;反之缩小文字
2012-03-25 16:19:58
47284
5
原创 我的Android笔记(十二)——分享一个自己写的cnBeta客户端源码
CnBeta是我本人常去的科技资讯站点,刚好最近在学习android开发,就萌生了自己写了一个cnbeta的android客户端想法。原理自然是很容易想到的:首先获取cnbeta新闻列表页的html代码,然后提取出自己需要的信息(新闻标题、连接)显示在ListView中。ListView的底部有一个“加载更多”的按钮,在点击加载第二页新闻列表当点击ListView的某一条新
2012-03-23 23:09:51
7063
5
原创 我的Android笔记(十一)——使用Preference保存设置
Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设
2012-03-22 12:26:47
20752
原创 我的Android笔记(十)—— ProgressDialog的简单应用,等待提示
在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容……这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧……而ProgressBar、ProgressDialog等就是专门干这个的。以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗时的操作
2012-03-21 01:08:52
51457
1
原创 我的Android笔记(九)—— TextView显示html图片的方法
TextView是不只可以String的,我们平常用的给setText()方法传递String参数的时候,其实是调用的public final void setText (CharSequence text)方法,String类是CharSequence的子类。而CharSequence子类众多,其中有一个接口Spanned,即类似html的带标记的文本。我们可以用它来在TextView中显示
2012-03-19 19:54:40
26222
3
原创 我的Android笔记(八)—— 使用Jsoup解析Html
想要做一个看新闻的应用,类似Cnbeta客户端的东西。大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item再加载相应的新闻内容。其中获取html代码,可以使用如下代码实现: public String getHtmlString(String urlString) { try {
2012-03-18 16:50:54
43117
4
原创 我的Android笔记(七)—— 读取txt文件内容
众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹,放置在raw文件夹下的内容会被原样打包,而不会被编译成二进制文件,并且可以通过R文件进行很方便地访问。比如我们可以将更新信息、版权信息等放到txt文件中,然后放到raw文件中,然后很方便地进行访问。在raw中放入一个a.txt文件,然后就可以在Activity中使用getResourc
2012-03-17 23:07:06
69773
11
原创 我的Android笔记(六)——分享一个自己的NumberPicker
(PS:其实不是自己的,只是我修改自别人的开源代码的,这里说“自己的”只是为了区别Android3.0以后系统自带的NumberPicker类)Android3.0增加了一个NumberPicker类,可用于数字的获取。但是目前我们的应用一般都至少要兼容到2.1,所以要用NumberPicker就很纠结了。我在写的一个应用要用到金钱的输入,之前的做法是用一个EditText,限制内容为数字
2012-03-17 01:37:27
23350
5
原创 我的Android笔记(五)——调用相机并将照片存储到sd卡上
Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据。 还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,洗染也比较复杂,一般平常的应用只需使用第一种即可。用Intent启动相机的代码: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); sta
2012-03-15 00:59:09
10397
原创 我的Android笔记(四)—— SQLite设置_id自增的方法
只需在建表的时候指定类型: INTEGER PRIMARY KEY AUTOINCREMENT然后在存入数据的时候不设置其值(或设置为null)即可。如建表:CREATE TABLE TABLE_NAME ( _id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);存入数据:ContentValues cv = new Conte
2012-03-15 00:31:58
31564
1
原创 我的Android笔记(三)——使用Intent在Activity间传值
在Android中, 一个Activity可以理解为一个屏幕。 当程序要从一个Activity切换到另外一个Activity时,就需要用到Intent。Intent专门负责Android程序之间、以及程序内Activity与Service之间交互、通信。以下是一个简单的demo,使用Intent从一个Activity切换到另一个Activity,并且传递一个数据进行显示。
2012-02-13 16:22:20
3333
原创 我的Android笔记(二)—— SQLite数据库的基本操作
SQLite是Android使用的轻量级的数据库,开发Android应用是对数据库的操作自然是必不可少。Android提供了一个SQLiteOpenHelper类来可以很方便的操作数据库,继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法。 onCreate: 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。
2012-02-07 20:12:38
8643
2
原创 我的Android笔记(一)—— hello world程序结构分析
新建一个android project,(我用的是2.3.3的Target),eclipse会自动生成以下内容————这是一个完整的可运行的“hello world”程序。运行结果为:在屏幕上显示出了Hello world,Demo_01Activity!----------------------------------------------------------
2012-01-31 21:20:48
3505
1
原创 struts2的checkbox传递布尔值出错的问题
struts2的checkbox传值问题。要通过action传递checkbox的布尔值时(是布尔值,单个的checkbox,表示此框是否被选中的布尔值),后台Action用一个布尔型变量接收。在用html的标准checkbox时,传值传的非常纠结,无论前台的checkbox是否被选中,在后台接收到的值总都是true……。最后找到的解决办法是:用struts的标签来代替标准
2011-11-29 04:53:28
5637
1
原创 更改Struts2的文件上传限制
用到了struts2文件上传功能,几经周折终于实现了主要功能。但是在测试的时候上传大一点的文件时却总是报错……最后发现,原来struts2的文件上传是有默认的大小限制的,是2M。更改大小限制的方法也很简单,只要在配置文件struts.xml中加入一句:数字即为更改后的最大大小,单位是B,字节。如我设置的20971520即限制为20M以内。很简单,顺便记下~ove
2011-11-28 04:42:09
1444
原创 学习笔记:jdbc连接、操作数据库SQL Server 2008(二)
在前天的文章http://blog.youkuaiyun.com/barryhappy/archive/2011/06/06/6528368.aspx中,我写了第一次用java连接的方法记录。那是创建了一个指向数据库的数据源,然后通过数据源利用jdbc-odbc桥实现的连接。 额……蓦然又发现使用jdbc-odbc桥是不被推荐的方法……貌似是因为平台支持之类的原因……额…… 换一个吧—
2011-06-08 00:40:00
3387
原创 学习笔记:jdbc连接、操作数据库SQL Server 2008 ——MyEclipse web示例
2012年3月 更新说明:此方法第二部为使用odbc,不是推荐的方法,详见我下一篇博客----------------------------------------------------------------------------------------------------------------------------------------------------
2011-06-06 20:44:00
31936
1
原创 学习笔记: JavaScript/JQuery 的cookie操作
cookie是网页存储到用户硬盘上的一小段信息。最常见的作用是判断用户是否登录、保存偏好设置等。我用到这个是写扫雷时,需要用cookie保存用户的设置,如行、列等。功能已具,笔而记之。cookie具有特定的格式—— cookiename=cookievalue; expires=epirationDateGMT; path=URL; domin=siteDomin; secure: boolean可以看出由分号隔开的几部分——第一部分是cookie的名称和值,这是每一个cookie中必须有的。
2011-04-27 21:50:00
5773
原创 使用JQuery——更优雅的编写脚本
JQuery是一个轻量级的javascript库——它还是javascript,但是比原生的javascript要更加方便和优雅,优雅,这是一个我非常喜欢的词。javascript的一个很大弊端是不同跟浏览器对它的处理是略有差异的,即兼容性。——不要小看“略有”这两个字,它足让程序员纠结、愤怒、拍桌子骂街了……(尤其是IE浏览器,额,不多说,程序员同学,你懂的)。而JQuery在很大程度上解决了这个问题,它封装了大量的操作,使我们在编程时基本不用考虑浏览器的差异性了。比如要在一个元素上添加一个鼠标事件,原生
2011-04-21 17:15:00
2439
2
一个cnbeta的Android客户端源代码 (包含jsoup的jar包)
2012-03-24
Java Android 解析html的demo
2012-03-18
Android的一个NumberPicker demo
2012-03-17
java贪吃蛇源代码 带详细注释的撒~~
2010-10-18
JAVA 翻牌小游戏源代码改进版
2010-08-19
JAVA 翻牌小游戏 源代码
2010-08-17
JAVA 很好玩的翻牌小游戏 源代码
2010-08-17
java 扫雷源代码 带有详细的注释
2010-08-14
JAVA 扫雷1.2 源代码 详细注释
2010-08-14
学生成绩管理系统C源代码
2010-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人