- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 ViewPager预加载机制
ViewPager会默认加载当前页和当前页的左右两页。一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页。当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页)。再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页。所以我们可以通过这个原理使ViewPager始终
2017-04-28 21:09:25 749
转载 一种拼音分词器的JAVA实现
原理很简单,就是模式匹配。根据中文全拼的特点,即声母和韵母配对,首先列举出所有的声母,再分别列举出所有声母对应的韵母集,分词的过程就是遍历匹配的过程。public class SpellTool { static String result = "";// 最后要显示的结果 private static ArrayList> ym = new
2017-04-28 19:42:20 931 1
原创 简单实现 Android listview 滑动过程中不加载图片,停止时加载图片
public class TestAndroidListActivity extendsActivity { privateintstart_index, end_index; // 判断是否是初始化 privatebooleanisInit = false; privateListView list; @Overri
2017-04-27 21:29:45 2257
原创 正则表达式特殊字符
特别字符 说明$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。*
2017-04-27 21:25:25 469
转载 adb操作命令详解及大全
adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行
2017-04-26 18:05:12 562
原创 Android emoji显示
Android emoji显示开发中常会被测试提出emoji支持显示的问题,Android的TextView与Editext 的组件其实是已经支持了emoji的显示的,有问题的就是,将emoji发给后台,后台再发回来会出现问题,所以我们需要对编码进行处理。当然下面的操作可以在Android处理也可以在后台处理,看需求而定unicode转换为Stringemoji是unicode编码
2017-04-26 10:25:13 639
原创 计算文字的高度和宽度
public int getTextHeight(Paint paint){ Paint.FontMetrics fm = paint.getFontMetrics(); return (int)(Math.abs(fm.ascent) + Math.abs(fm.descent)); } public int getTextWidth(T
2017-04-26 10:22:09 726
转载 Java 的泛型擦除和运行时泛型信息获取
Java 的泛型擦除代码一Class c1 = new ArrayList().getClass();Class c2 = new ArrayList().getClass(); System.out.println(c1 == c2);/* Outputtrue*/ArrayList 和 ArrayList 在编译的时候是完全不同的类型。你无法在写代码时,把一个 Str
2017-04-24 10:14:47 924
转载 如何让PowerShell显示中文不乱码
如今软件日益国际化的今天,Windows下的命令行却还顽固地使用本地编码来显示数据,这导致用UTF-8编码的文件在命令行显示乱码。虽说Cygwin的内核cygwin1.dll有自动转换功能,可是因为GB2312中没有变音符号等特殊字符,某些字符仍然不能正常显示。虽然控制面板可以改控制台编码,可是你会发现并没有UTF-8。其实Windows是支持UTF-8控制台的,只是把它藏起来了。第一步,
2017-04-19 13:42:23 30221 1
转载 java加密算法之AES小记
jce中提供了加解密的api:1、首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码),16字节是分组长度AES支持五种模式:CBC,CFB,ECB,OFB,PCBC,jce中实现了三种补码方式:NoPadding,PKCS5Padding,ISO10126Padding;
2017-04-18 14:24:31 6794
转载 AES加密 - iOS与Java的同步实现
AES是开发中常用的加密算法之一。然而由于前后端开发使用的语言不统一,导致经常出现前端加密而后端不能解密的情况出现。然而无论什么语言系统,AES的算法总是相同的, 因此导致结果不一致的原因在于加密设置的参数不一致 。于是先来看看在两个平台使用AES加密时需要统一的几个参数。密钥长度(Key Size)加密模式(Cipher Mode)填充方式(Padding)初始向量(Initiali
2017-04-18 10:41:36 784
转载 AES五种加密模式(CBC、ECB、CTR、OCF、CFB)
分组密码有五种工作体制:1.电码本模式(Electronic Codebook Book (ECB));2.密码分组链接模式(Cipher Block Chaining (CBC));3.计算器模式(Counter (CTR));4.密码反馈模式(Cipher FeedBack (CFB));5.输出反馈模式(Output FeedBack (OFB))。以下逐一介绍一下:1.电码本模式(
2017-04-18 10:02:22 1940
转载 JCE无限制权限策略文件
因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件。 官方网站提供了JCE无限制权限策略文件的下载: JDK6的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243
2017-04-17 20:20:36 12758
转载 mavenCenter和JCenter
Gradle支持从maven中央仓库和JCenter上获取构件,那这两者有什么区别呢?maven中央仓库(http://repo1.maven.org/maven2/)是由Sonatype公司提供的服务,它是ApacheMaven、SBT和其他构建系统的默认仓库,并能很容易被ApacheAnt/Ivy、Gradle和其他工具所使用。开源组织例如Apache软件基金会、Eclipse基金会、JB
2017-04-16 15:23:46 1345
转载 二维码
一、什么是二维码:二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。
2017-04-16 12:22:53 863
转载 Git如何永久删除文件(包括历史记录)
参考 github 的帮助:https://help.github.com/articles/remove-sensitive-data步骤一: 从你的资料库中清除文件以Windows下为例(Linux类似), 打开项目的Git Bash,使用命令:git filter-branch --force --index-filter 'git rm --cached --i
2017-04-13 18:00:02 5514
转载 Git查看、删除、重命名远程分支 tag
查看远程分支加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话):$ git branch -a master remote tungway v1.52* zrong remotes/origin/master remotes/origin/tungway remotes/origin/v1.52 remotes/origi
2017-04-11 12:16:33 457
转载 一些很不错的Android开发技巧
翻译自 android-tips-tricks了解你的工具Android Studio使用快捷键完整的快捷键指南 : MacOSX | Linux/Win使用更有效率的插件⒈KeyPromoter快捷键提示插件 -- 试用了一下,就是你点击的时候有些按钮会出来提示框告诉你这个的快捷键是什么以及你使用的次数,还不错,目的就是让你进行键盘流操
2017-04-11 10:26:24 630
原创 自定义dialog and anim
button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub AlertDialog dialog = new AlertDialog.Builder(TestAndro
2017-04-10 20:51:36 305
原创 定义Activity及Dialog的进入退出效果
设置Dialog首先通过getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。问题是这个animation应该怎么写呢,研究发现,窗口进入和退出的效果分别是通过@android:win
2017-04-10 20:37:12 555
转载 javadoc注释规范
文档注释可以用于对类、属性、方法等进行说明。写文档注释时除了需要使用 /** .... */ 限定之外,还需要注意注释内部的一些细节问题。1文档和文档注释的格式化生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。比如,需要换行时,不是敲入一个回车符,而是写入 <br>,如果要分段,就应该在段前写入 <p>。
2017-04-06 09:24:42 397
转载 Android Scroller与computeScroll的调用机制关系
Android ViewGroup中的Scroller与computeScroll的有什么关系?答:没有直接的关系知道了答案,是不是意味着下文就没必要看了,如果说对ViewGroup自定义控件不感兴趣,可以不用看了。1.Scroller到底是什么?答:Scroller只是个计算器,提供插值计算,让滚动过程具有动画属性,但它并不是UI,也不是辅助UI滑动,反而是单纯地为滑动提供计算。
2017-04-06 09:17:31 389
原创 SparseArray和ArrayMap
1、如果key的类型已经确定为int类型,那么使用SparseArray,因为它避免了自动装箱的过程,如果key为long类型,它还提供了一个LongSparseArray来确保key为long类型时的使用2、如果key类型为其它的类型,则使用ArrayMap
2017-04-01 09:26:55 401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人