- 博客(203)
- 资源 (5)
- 收藏
- 关注
原创 Android 防止button多次点击总结
long lastClick ; public void onClick(View v) { //大于一秒方个通过 if (System.currentTimeMillis() - lastClick <= 1000) { showToast("点那么快干什么!!!"); r
2014-09-05 15:53:01 2081
原创 Android studio快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动
2014-09-03 11:29:34 872
转载 android项目两种构建方式的整合(Eclipse/idea和Android Studio)
摘要android项目两种构建方式的整合(Eclipse/idea和Android Studio)原文android的两种构建方式目前android主要有两种构建方式,一种基于ant(传统的),另一种是13年Google/IO上新推出基于Gralde的构建(Android Studio)。从sdk的samples的例程也可以看到api18后的例程的项目目录结构也变了。简
2014-09-03 10:48:05 2004
原创 Android WebView中软键盘会遮挡输入框相关问题
要想实现这种软键盘出现的时候会自动把输入框的布局顶上去的效果,需要设置输入法的属性,有以下两种设置方式: 一、在java代码中设置如下: getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE| WindowManager.Layo
2014-09-02 13:10:23 6647
原创 Android关闭输入法键盘
有时候退出Activity时,因为前面使用了输入法,退出时候输入法键盘还没有关闭,这种效果不友好,下面是在按后退键时候加入以下代码if (view!= null) { InputMethodManager inputmanger = (InputMethodManager) getSystemService(Context.INPUT_METH
2014-08-29 14:04:52 2807
原创 SwipeListView 详解 实现微信,QQ等滑动删除效果
QQ或者微信出现过滑动,最近联系人列表,可以删去当前选中的联系人,这个功能玩起来很爽 ,就是试着做了下。其实是使用了开源框架SwipeListView 。SwipeListView 与一般的ListView使用方式差不多,只是增加了一些特殊功能。 <com.fortysevendeg.swipelistview.SwipeListView
2014-08-06 17:28:27 4107 10
原创 【Android自定义控件】圆圈交替,仿progress效果
还是我们自定View的那几个步骤:1、自定义View的属性2、在View的构造方法中获得我们自定义的属性3、重写onMesure (不是必须)4、重写onDraw自定义View的属性 自定义View,并且使用自定义的Viewpub
2014-08-05 16:24:33 1509 2
原创 【android自定义控件】自定义View属性
1、自定义View的属性2、在View的构造方法中获得我们自定义的属性3、重写onMesure 4、重写onDraw3这个步骤不是必须,当然了大部分情况下还是需要重写的。1、自定义View的属性,首先在res/values/ 下建立一个attrs.xml , 在里面定义我们的属性和声明我们的整个样式。
2014-08-05 12:38:59 1842 1
原创 【代码优化】反射机制的慎用
反射——给定一个类的class实例,你可以获得Constructor,method和field实例。而且,Constructor,method和field实例使你能够通过反射机制操作他们的底层对等体。反射机制允许一个类使用另一个类,即使当前被编译的时候,后者还没根本不存在。然后有这种超能力是需要付出代价的:丧失了编译时候的类型检查的好处——包括异常检查。如果通过反射调用
2014-08-04 14:56:46 1468
原创 【代码优化】for-each代替普通的for循环或者while循环
对于集合的遍历首选方法是for-eachfor(Element e :c){ doSomething(e);}这是1.5版本之后的做法;java1.5之前使用的是Iterator迭代器。为了弄清楚为啥比普通的for循环或者whlie循环好,请看一下代码Iterator i=c.iterator();while(i.hasNext()){
2014-08-02 23:10:29 2917
原创 【代码优化】返回0长度数组或者集合
改掉你从C语言继承过来的习惯,我们在java中没理由返回类型为数组或者集合返回null。private final List InStock =...;public Cheese[] getCheeses() { if( InStock.size() ==0){ return null; }}这种是我们经常使用的 返
2014-08-02 17:55:03 1115
原创 【git体验】git基础-3目录之间关系
1、git目录和工作目录Git目录并不是Bare repo,而是本地的代码库,即用git init命令在根目录chau建的".git"目錄(類似於SVN的".svn"目錄),這個目錄就是git實現分布式代碼管理的關鍵了(想想p2p軟件是怎樣工作你就明白了).
2014-07-24 14:23:51 885
原创 【代码优化】方法签名及参数检查
参数检查: 绝大多数方法的构造器对于传递给它的参数值会有某些限制。例如,索引值必须是非负数,对象不能为null等等。如果传递无效参数给方法,在执行前没对参数进行检查,该方法可能在处理过程中失败,并且产生令人费解的异常。更糟的是,该方法可以正常返回数据。但是会得到一个错误的结果,你还认为是正确的,没发现其中的倪端。所以对于方法参数的检查是有必要的。常见的几个错误,Il
2014-07-21 22:35:45 1036
原创 Android代码中更改TextView颜色
项目中,需要在代码中动态更改TextView的颜色,原先使用如下:text.setTextColor(R.color.black);为生效,查阅资料后,正确写法如下:text.setTextColor(context.getResources().getColor(R.color.black));或:text.setTextColor(getResource
2014-07-18 16:31:10 1180
原创 【git体验】git原理及基础
原理:分布式版本控制系统像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜 像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。更进一步,许多这类系统都可以指定和若干不同的远端代码仓
2014-07-17 00:08:27 1025
原创 【代码优化】坚持使用Override注解
对于传统程序员,注解里面最重要的就是Override注解了。这里的注解,都是指只能用在方法中的声明,她表示被注解的方法用于覆盖了父类的一个声明,如果坚持使用这个注解,可以防止一大类的非法错误。public class Bigram{ private final char first; private final char second; public Bigram (char fir
2014-07-13 17:30:44 1123
原创 【代码优化】注解优先命名模式
一般命名模式表明有些程序元素需要通过某种工具进行特殊处理。例如:JUnit测试框架要求用户一定要用test作为测试方法名称的开头。这种方法有几个严重的缺陷首先,文字拼写错误会导致失败,但是没有任何提示。比如,把方法名称命名写成tsetSafety而不是testSafety时。JUnit不错报错,但是也不会执行测试。其次,无法确保它们只用于相应的程序元素上。比如,将每个类命名
2014-07-13 17:09:18 1443
原创 INSTALL_FAILED_UID_CHANGED解决办法
最近开发过程中又遇到了这个问题,终于找到了一个比较好的解决办法,在此记录下。打开手机或者pad中的设置----->安全----->未知来源(允许安装非安卓市场应用程序),把这个取消,再重新选中,然后重启设备,再安装,就ok了 。其他关于卸载data下面文件的方法都没想过,重启机器或者恢复出厂设置再连接就好了
2014-07-10 16:53:33 2250
原创 【代码优化】使用enum代替int常量
经常带代码中看见这样的代码:public static final int APP_START=1;public static final int APP_PAUSE=0;public static final int APP_STOP =2;public static final int PLAY_START=1;public static final int P
2014-07-07 22:23:54 2269
原创 【代码优化】equals深入理解
覆盖equals时,遵守通用约定对equal方法的覆盖看起来很简单,但是有许多情况是容易导致错误,最好的避免这些错误的办法就是不覆盖equals方法.必须遵循的原则:自反性--对于任何非空的引用 x,有x.equals(x) 为true;对称性--对于任何非空的引用x,y,如果x.equals(y) 为true,则必有y.equals(x) 为true;传递
2014-07-02 12:01:22 1057
原创 【代码优化】构造器参数繁多时候,考虑使用builder模式
静态工厂和构造器有个共同的局限性:都不能很好的扩展到大量的可选参数。1、对于多个可选参数的构造器,我们都习惯采用重叠构造器模式,比如一个参数的构造器调用2个参数的构造器, 2个参数的构造器调用3个参数的,以此类推。public class User{ private int id; private String name; priva
2014-07-01 11:09:33 1069
原创 【代码优化】私有构造器使用及对象创建优化
1、使用私有构造器或者枚举类型强化singleton 1》单例模式---私有构造器,提供一个公有的成员是一个静态工厂方法:public class SingleTon{ private static final SingleTon single=new SingleTon(); private SingleTon(){ } pu
2014-07-01 11:00:29 847
原创 ViewPager.getChildCount() 含义
viewpager.getChildCount() 很容易误解成viewpager子页面的size,它和getCount还是有区别的getChildCount() 是表示当前可见页size比如:Viewpager总共3页当到第一页时候可见页面为2(在滑动过程,可见第一张和第二张),getChildCount() =2,当到第二页时候可见页为3(在左右滑动过程,可见第一张,第二张
2014-06-20 13:15:34 4703
原创 【代码优化】考虑使用静态工厂方法代替构造器
静态工厂方法与设计模式中的工厂方法模式不同,和设计模式中的工厂方法模式不直接对应。使用静态工厂方法比构造器的优势:第一、静态工厂方法是有名称的,而构造器是通过参数判断的。每个静态工厂方法都有自己的名字,可以根据名称就可以判断它要做什么事情,而构造器是做不到的。如:构造器BigInteger(int,int),返回BigInteger可以是素数,偶数等,而用名称Big
2014-06-19 23:02:58 963
原创 Intellij idea常用快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Spac
2014-06-13 10:33:38 1039
原创 【android自定义控件】ProgressBar自定义
ProgressBar分为垂直和水平经常在数据加载过程中,为了让用户感觉友好,弹出一个提示圆形的加载框水平的经常在下载应用的时候用到,还伴随着下载进度。ProgressBar的样式有四种:android:progressBarStyle:默认进度条样式,不确定模式android:progressBarStyleHorizontal
2014-06-05 21:38:48 1541
原创 【android自定义控件】LinearLayout定义ActionBar样式
其实大家看到都ActionBar说白了,就是自定义的一个Linearlayout或者RelatedLayout;今天就练练LinearLayout自定义。LinearLayout自定义方法有多种:1、自定义xml布局,然后加载布局,自定义一个View继承LinearLayout2、在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去
2014-06-05 21:06:25 1445
转载 主宰全球的10大算法
Reddit有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大。如果对算法有所了解,读这篇文章时你可能会问“作者知道算法为何物吗?”,或是“Facebook的‘信息流’(News Feed)算是一种算法吗?”,如果“信息流”是算法,那就可以把所有事物都归结为一种算法。才疏学浅,结合那篇帖子,接下来我试着解释一下算法是什么,又是哪10个算法正在主导我们的世界。
2014-06-05 10:33:40 872
原创 Tween动画TranslateAnimation细节介绍
Tween动画有以下这几种:Animation 动画AlphaAnimation 渐变透明度RotateAnimation 画面旋转ScaleAnimation 渐变尺寸缩放TranslateAnimation 位置移动AnimationSet 动画集今天主要讲讲TranslateAnimation,主要的属性有
2014-06-01 13:40:23 1763
原创 Android利用canvas画各种图形
canvas通俗的说就是一张画布,我们可以使用画笔paint,在其上面画任意的图形。原理:可以把canvas视为Surface的替身或者接口,图形便是绘制在Surface上的。Canvas封装了所有的绘制调用。通过Canvas,绘制到Surface上的内容首先存储到一个内存区域(也就是对应的Bitmapz中),该Bitmap最终会呈现到窗口上。使用:1、Canv
2014-05-25 17:06:23 1737
原创 首次启动优美新手指引tip
在开发商业应用时候,用户第一次进入app,有种无从下手的感觉,我们作为开发者要提供可用户一些指引,这些指引不能让用户看着唐突,要舒服的展示给用户,带着用户愉快的使用我们的app。怎么让用户舒服呢? 我们不能直接弹出一个AlterDialog,这样会吓跑你的用户,所以嘛 我们要温柔一点那就在整个窗体做文章吧。我们可以对定义自定义主题theme来实现这个tip,很柔和的
2014-05-18 22:34:16 1260 2
原创 Android全局变量使用
1、通过一个Data.java实例类,可以实现全局数据保存,这里就不多说了,学Java的都知道。2、Android特有的Application,是应用的入口,运行贯穿整个app运行过程,可以在这个类中定义全局变量public class baseApplication extends Application { private float screenWidth; pri
2014-05-09 18:13:13 1467
原创 ListView嵌套ListView优化
在做业务时候,一个ListView显示多种数据类型,我们想到的方法是ListView在嵌套一个ListView,对于子ListView占父ListView的一行,就解决了问题,但是这样的逻辑是不是有点奇怪呢?第一,父ListView的长度size需要加1,因为增加了一行放子listView public int getCount() { retur
2014-05-07 21:43:46 2389 3
原创 android创建桌面快捷键shortcut
有很多人也写过创建桌面快捷键的blog,但是大部分都只讲了怎么用,其实技术使用起来都很简单,但是你使用后下次还知道吗?根本原因还是不清楚原理,今天我就来讲讲shortcut创建过程。过程:home键--》点击添加--》弹出一个Dialog对话框--》Dialog对话框中的数据,是一个系统级专门用来查找的Activity启动---》查找出数据显示能添加的快捷方式-
2014-05-06 23:32:12 2476
原创 android开发完全退出activity
我们退出Activity可以调用:finish(),system(0),但是这些都只是单单退出单个Activity也有人会说,直接把进程杀死,这些做法都不是很可取,其实我们翻看api可以发现,Activity都是放入stack中管理,我们只要把stack清空了,不就完全退出了嘛。要对Activity的stack管理,就需要了解launchMode的四种状态,这里
2014-05-06 17:50:56 1554 5
原创 记住不要把Bitmap往List等集合放
很多时候,不注意这些细节,直接把bitmap放入List集合中,再者用完忘记清空bitmap,List集合,很容易造成内存泄露就算你有良好的编程习惯,用完就清空掉,但是数据在list.add()循环的时候就报内存泄露了,还没等你清空,已经oom了所以,开发中不建议把Bitmap放入list集合中
2014-04-29 22:14:56 2863
原创 动画教你使用git
你还在为git使用发愁吗??你还在看git使用文档枯燥烦?国外大牛 动画教你使用git(需要翻墙,不然服务器响应太慢)http://pcottle.github.io/learnGitBranching/
2014-04-15 11:55:09 2446 2
原创 Android事件处理机制
在Android中,事件主要包括点按、长按、拖拽、滑动等按下(ACTION_DOWN)移动(ACTION_MOVE)抬起(ACTION_UP)
2014-04-10 11:24:54 940
原创 【android自定义控件】属性动画 <五>
正如我们已经看到在以前经常使用的动画,可以通过Xml很容易的创建。<translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%p" android:fromYDelta="0%p" android:toXDelta="50%p" android:to
2014-04-06 21:29:34 1999 2
SwipeListView实例源码
2015-06-18
Android自动清理无用资源
2014-11-21
Android自动清理无用资源文件
2014-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人