Android
文章平均质量分 76
barryhappy
攻城狮
展开
-
我的Android笔记(二)—— SQLite数据库的基本操作
SQLite是Android使用的轻量级的数据库,开发Android应用是对数据库的操作自然是必不可少。Android提供了一个SQLiteOpenHelper类来可以很方便的操作数据库,继承和扩展SQLiteOpenHelper类主要做的工作就是重写以下两个方法。 onCreate: 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法中执行。原创 2012-02-07 20:12:38 · 8603 阅读 · 2 评论 -
Android的多语言实现
以前就知道Android的多语言实现很简单,可以在不同的语言环境下使用不同的资源什么的,但是一直没有实际使用过。 最近公司的项目要用到多语言于,是就研究了一下——果然很简单啊。要使用多语言,首先肯定要有为不同语言准备的资源。只需要按照Android提供的规范,对不同语言下的资源文件夹进行对应的命名即可。比如我们知道/valus是Android的默认简单资源(字符串、数值、颜色等)的原创 2014-04-11 12:37:28 · 21662 阅读 · 3 评论 -
Android客户端验证Licence的原理
需求: 限制App的使用,使App只能在有许可的设备上运行。原理: 让App在每次运行的时候都连接服务器进行合法性验证——当然是一个很成熟可靠的方案;但是这样做的局限也是每次都需要连接服务器,对一些不需要联网或者只连局域网的内部应用来说就太不可行了——服务端验证不可行的话就只能在客户端验证了。原创 2014-07-31 09:59:03 · 6193 阅读 · 1 评论 -
Android:自定义DialogFragment的内容和按钮
小问题,记录下~Android4.0以后开始推荐使用DialogFragment代替Dialog。Android的官方文档中给了两个示例:一个Basic Dialog示例了如何自定义窗口内容——重写onCreateView方法。 一个Alert Dialog示例了如何自定义弹窗的正负按钮——重写onCreateDialog方法。 好的,那么问题来了在实际应用中经常是原创 2014-12-13 22:21:35 · 7846 阅读 · 0 评论 -
Android:防止过快点击造成多次事件
onClick事件是Android开发中最常见的事件,本文介绍了一个小技巧,能防止view被误操作快速重复点击时,而重复产生事件。原创 2015-03-20 23:57:45 · 52016 阅读 · 13 评论 -
解决下载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 · 25487 阅读 · 4 评论 -
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 · 3105 阅读 · 0 评论 -
【Android】真机调试新姿势:无线连接
在进行Android开发时,一般我们都是用usb线把手机和电脑连接起来进行调试工作。但如果你觉得这样不够酷的话,可以尝试一下无线连接,颇简单,GO!原创 2016-10-09 23:01:37 · 5383 阅读 · 0 评论 -
【Android】你可能还不知道的elevation、以及Z值等
Android你可能还不知道的elevation以及Z值等elevation以及Z值是什么有什么用处呢影响View的阴影影响View相互阻挡顺序还有CardView原创 2016-09-29 11:42:00 · 15272 阅读 · 0 评论 -
【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 · 11121 阅读 · 1 评论 -
Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
前言开发做得久了,总免不了会遇到各种坑。 而在Android开发的路上,『软键盘挡住了输入框』这个坑,可谓是一个旷日持久的巨坑——来来来,我们慢慢看。原创 2016-10-28 09:51:44 · 6204 阅读 · 0 评论 -
只需五分钟,开始使用Kotlin开发Android
1:本文是一篇描述如何在Android上开始一个Kotlin的HelloWorld程序的说明文。 2:其实你如果你网络够给力的话,也许三分钟就可以了。当然网络不够给力,也可能十分钟还没整好~原创 2016-10-20 21:35:14 · 7631 阅读 · 1 评论 -
Android开发:为什么要使用Kotlin?
在使用Kotlin进行了一段时间的Android开发之后,我深深地体验到了它的美好,觉得是时候把它拿出来安利一下了。原创 2016-10-20 21:36:53 · 4538 阅读 · 0 评论 -
彻底搞懂startActivityForResult在FragmentActivity和Fragment中的异同
Activity、FragmentActivity、Fragment中都有`startActivityForResult()`方法,也都有用以接收结果的`onActivityResult()`方法,那他们有什么区别吗?用法上有什么不同吗?原创 2016-11-19 12:49:42 · 14749 阅读 · 3 评论 -
如何画一个正多边形
本文由BarryZhang原创,同时首发于barryzhang.com,简书,非商业转载请注明作者和原文链接。场景给定一个指定的正方形的区域,要求在该区域内画一个正N边形(正三角形、正方形、正五边形……) public static void drawPolygon (RectF rect, Canvas canvas, Paint p, int n) { // draw……}分析要用到原创 2016-12-13 10:46:15 · 4557 阅读 · 0 评论 -
Android应用密码的实现
最近做了一个demo——功能是给自己的应用加锁,访问的时候需要输入密码,并且每次锁屏再开之后都需要重新输入密码。主要思路:设置一个全局变量表示当前应用的状态(布尔值:已锁定|已解锁),在每个Activity显示之前进行状态判断,如果当前为锁定状态,则终止显示,跳转到密码界面。在密码界面输入正确的密码之后,将应用状态改为已解锁,并返回继续显示之前的Activity;否则继续要求输入密码。原创 2014-03-27 01:42:51 · 13407 阅读 · 4 评论 -
我的Android笔记(十二)——分享一个自己写的cnBeta客户端源码
CnBeta是我本人常去的科技资讯站点,刚好最近在学习android开发,就萌生了自己写了一个cnbeta的android客户端想法。原理自然是很容易想到的:首先获取cnbeta新闻列表页的html代码,然后提取出自己需要的信息(新闻标题、连接)显示在ListView中。ListView的底部有一个“加载更多”的按钮,在点击加载第二页新闻列表当点击ListView的某一条新原创 2012-03-23 23:09:51 · 7028 阅读 · 13 评论 -
我的Android笔记(三)——使用Intent在Activity间传值
在Android中, 一个Activity可以理解为一个屏幕。 当程序要从一个Activity切换到另外一个Activity时,就需要用到Intent。Intent专门负责Android程序之间、以及程序内Activity与Service之间交互、通信。以下是一个简单的demo,使用Intent从一个Activity切换到另一个Activity,并且传递一个数据进行显示。原创 2012-02-13 16:22:20 · 3309 阅读 · 0 评论 -
我的Android笔记(一)—— hello world程序结构分析
新建一个android project,(我用的是2.3.3的Target),eclipse会自动生成以下内容————这是一个完整的可运行的“hello world”程序。运行结果为:在屏幕上显示出了Hello world,Demo_01Activity!----------------------------------------------------------原创 2012-01-31 21:20:48 · 3479 阅读 · 4 评论 -
我的Android笔记(十三)——Muilti-touch 双指缩放的实现探索
Multi-Touch(多点触控)可谓是现代智能手机最令人赞叹的功能之一,想当年乔爷第一次在iphone的发布会上演示多点触控功能的时候,台下的掌声和口哨声那叫热烈啊~~~~本文主要讨论文字缩放,以TextView为例。先放上效果图吧: 两指缩放的基本原理:判断当前在TextView上的点有几个,当有两个(或更多时)点,并且点之间的距离在不断增大时,放大文字;反之缩小文字原创 2012-03-25 16:19:58 · 47156 阅读 · 23 评论 -
我的Android笔记(十四)—— 在应用中集成科大讯飞的语音识别技术
语音识别技术最近貌似是越来越火了。再前几天科大讯飞还刚刚发布了讯飞语点——一个据说要挑战siri的应用。……好吧,对这些的东西讨论要说起来就多了。本文主要讲如何在自己的android应用中集成语音识别技术——自然,是使用科大讯飞的sdk。讯飞的语音sdk是需要申请的,地址是:http://dev.voicecloud.cn/developer.php?vt=1 。申请一个讯飞的开发原创 2012-03-27 23:57:36 · 30113 阅读 · 9 评论 -
我的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 · 31476 阅读 · 1 评论 -
我的Android笔记(五)——调用相机并将照片存储到sd卡上
Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据。 还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,洗染也比较复杂,一般平常的应用只需使用第一种即可。用Intent启动相机的代码: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); sta原创 2012-03-15 00:59:09 · 10360 阅读 · 3 评论 -
我的Android笔记(六)——分享一个自己的NumberPicker
(PS:其实不是自己的,只是我修改自别人的开源代码的,这里说“自己的”只是为了区别Android3.0以后系统自带的NumberPicker类)Android3.0增加了一个NumberPicker类,可用于数字的获取。但是目前我们的应用一般都至少要兼容到2.1,所以要用NumberPicker就很纠结了。我在写的一个应用要用到金钱的输入,之前的做法是用一个EditText,限制内容为数字原创 2012-03-17 01:37:27 · 23321 阅读 · 8 评论 -
我的Android笔记(七)—— 读取txt文件内容
众所周知,Android的res文件夹是用来存储资源的,可以在res文件夹下建立一个raw文件夹,放置在raw文件夹下的内容会被原样打包,而不会被编译成二进制文件,并且可以通过R文件进行很方便地访问。比如我们可以将更新信息、版权信息等放到txt文件中,然后放到raw文件中,然后很方便地进行访问。在raw中放入一个a.txt文件,然后就可以在Activity中使用getResourc原创 2012-03-17 23:07:06 · 69681 阅读 · 11 评论 -
我的Android笔记(八)—— 使用Jsoup解析Html
想要做一个看新闻的应用,类似Cnbeta客户端的东西。大致思路如下:根据链接获取新闻列表页的html代码,然后解析,找到所有的新闻标题和新闻链接用listView显示,当点击ListView的Item再加载相应的新闻内容。其中获取html代码,可以使用如下代码实现: public String getHtmlString(String urlString) { try {原创 2012-03-18 16:50:54 · 43084 阅读 · 25 评论 -
我的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 · 26177 阅读 · 16 评论 -
我的Android笔记(十)—— ProgressDialog的简单应用,等待提示
在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容……这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧……而ProgressBar、ProgressDialog等就是专门干这个的。以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗时的操作原创 2012-03-21 01:08:52 · 51411 阅读 · 9 评论 -
我的Android笔记(十一)——使用Preference保存设置
Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设原创 2012-03-22 12:26:47 · 20611 阅读 · 1 评论 -
proguard如何会导致json解析失效?
1. 楔子json数据的解析是这个星球上99%的Android程序猿都会遇到的问题,而其中的大部分,都会使用Gson,故事就是从这里发生……原创 2017-04-06 21:21:26 · 2306 阅读 · 0 评论