- 博客(133)
- 资源 (15)
- 收藏
- 关注
原创 使用fresco如何获取本地缓存图片的文件
FileBinaryResource resource = (FileBinaryResource)Fresco.getImagePipelineFactory().getMainDiskStorageCache().getResource(new SimpleCacheKey(uri.toString()));File file = resource.getFile();
2016-01-13 11:39:23 14561
原创 使用LinearLayout实现ListView,解决ListView和ScrollView滚动冲突
概述我们常常会遇到一个ScrollView里面会嵌套ListView的情况,但往往你会发现,ListView和ScrollView的滚动时间会有冲突问题。那么如何解决呢?这是本文的意义所在。使用LinearLayout实现ListView自定义一个View,我这取名为LinearLayoutForListView。直接看代码:public class LinearLayoutForListView
2015-10-26 17:49:26 2677
原创 Android TextView 如何判断是否已经省略
我们知道,要使TextView单行显示,如果超出的话用“…”显示,只要设置android:ellipsize="end"android:singleLine="true"或者多行显示,超出的部分使用“…”显示,那么,设置如下android:lines="2"android:ellipsize="end"那么问题是,我们怎么知道TextView已经省略了内容呢? TextView t
2015-08-25 18:44:40 9719
原创 Android Studio单元测试
概述Android中也提供了一套测试框架,项目中主要用到的是AndroidTestCase类和ActivityInstrumentationTestCase2类,前者用于测试一些需要传入Context的工具类,后者用于测试一些自定义View等与界面相关的。虽然单元测试可以免去运行整个APP,但还是需要运行在模拟器或测试机器上,这里使用Genymotion模拟器。例子测试框架中提供了一个方法asser
2015-08-12 17:31:05 2361
原创 浅谈Android数据库版本升级及数据的迁移
概述Android开发涉及到的数据库采用的是轻量级的SQLite3,而在实际开发中,在存储一些简单的数据,使用SharedPreferences就足够了,只有在存储数据结构稍微复杂的时候,才会使用数据库来存储。而数据库表的设计往往不是一开始就非常完美,可能在应用版本开发迭代中,表的结构也需要调整,这时候就涉及到数据库升级的问题了。数据库升级数据库升级,主要有以下这几种情况:增加表删除表修改表
2015-07-29 16:21:06 5346
转载 Android DEX自动拆包及动态加载简介
概述作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生成的apk在android 2.3或之前的机器上无法安装,提示INSTALL_FAILED_DEXOPT 方法数量过多,编译时出错,提示:Conversion to Dalvik format fail
2015-07-29 10:01:27 1967
原创 java.lang.IllegalStateException: Failure saving state: active HomeMainFg{42ed2fb8} has cleared index
简要说明主界面一个Activity容纳三个Fragment,底部三个按钮可以切换Fragment,其中HomeMainFg是主界面第一个显示的Fragment解决主界面的Activity设置了launcherMode为singleTask,而在登录的时候,登录按钮再短时间内(快速)按了多次,导致主界面重启(重绘)了多次,导致HomeMainFg生成多个对象(猜测的…)。使点击按钮在短时间内只能点击一
2015-07-21 18:26:46 6953
原创 使用Android Studio编译Fresco
从github下载下来之后运行,遇到的问题就是下面这个Error:Execution failed for task ':imagepipeline:ndk_build_bitmaps'.> A problem occurred starting process 'command 'ndk-build.cmd''首先配置一下NDK的系统环境变量NDK_HOME,并且将其添加到PATH里面 不会的看
2015-07-13 17:54:42 9947 2
转载 Android Studio-1.2版本使用教程
转自http://licheetec.com/2015/05/02/android-studio-settings/ 这两天Google更新了Android Studio 1.2正式版,新版本的设置界面大变面,设置条目较旧版本进行了归类,不像以前那样列表长长的了。趁着安装新版本的机会,把常用的设置记录一下,放到博客里面,以作备忘。Android Studio / Gradle学习资源在说设置之前,
2015-06-02 23:31:36 1475
转载 Swift开发Sprite Kit游戏实践(四):背景音乐与Game Over
Game Over!如果monkey跟敌人相撞,或落出屏幕的话,就会显示”Game Over“,接着出现重新点击开始游戏的画面。首先将以下所有变量添加到GameScene顶端,在 let player = SKSpriteNode(imageNamed:”spacemonkey_fly02”)之后:// 1 var gameOver = false // 2 let endLabel = SKLa
2015-05-28 10:07:20 2096
转载 Swift开发Sprite Kit游戏实践(三):物理推力与碰撞检测
物理推力为了避免monkey“落下”,需要用物理推力让它重新跳起来。这时要在spawnEnemy()后添加一个新的method:func jumpPlayer() { // 1 let impulse = CGVector(dx: 0, dy: 75) // 2 player.physicsBody?.applyImpulse(impulse) } 再回顾一
2015-05-28 09:56:07 2933
转载 Swift开发Sprite Kit游戏实践(二):让敌人们动起来
让敌人们动起来先对“敌人”的代码进行微调,使它们在出现之前,完全隐藏在屏幕后(而非仅仅隐藏一半)。从天而降的设定为游戏增加了难度,也增添了乐趣。那么首先要做的就是更新spawnEnemy()那一行代码,敌人sprite的position编写如下:enemy.position = CGPoint(x: frame.size.width + enemy.size.width/2, y: fr
2015-05-28 09:41:05 1539
转载 Swift开发Sprite Kit游戏实践(一)
快速入门首先要安装苹果的iOS和Mac应用免费开发工具——Xcode。如果还没有安装Xcode,可以从App Store上下载;如果已经安装好,须确保自己使用的是最新版本。安装好Xcode后,下载并解压starter project,双击SpaceMonkey.xcodeproj,文件就会在Xcode中打开。单击“Play”,接着你会看到一整片黑屏: starter project给了一个
2015-05-28 09:36:26 1390
原创 关于adapter布局中有Button控件时,导致ListView的onItemClick无法触发的问题
在Button控件的属性加上android:focusable=”false”即可
2015-05-21 11:37:57 1074
原创 心形进度条
废话不多说,先上效果图: 这个进度就是模拟心形填充的过程实现原理是:首先将空心形图片绘制出来,然后根据进度大小再将实心的心形图片一部分一部分的绘制出来。也就是两张完全相同大小的空心图和圆心图重叠绘制,利用canvas的clipRect绘制实心部分,实现进度条效果。首先在res->values先新建一个文件atrrs.xml,然后定义两个属性<?xml version="1.0" encodin
2015-05-18 14:40:26 2541
原创 一个简单的圆形图片实现
序言很多时候我们都需要使用到圆形的图像控件,比如头像之类的。如果是开发者自己设计界面的时候使用,取巧的方法就是让美工给你做一个圆形ICON,但很多时候是需要显示用户上传的图像,这时候做一个通用的圆形图像控件是有必要的,那如何实现呢?正文Android图像控件一般是使用ImageView,那么我们这个自定义CircleView的圆形图像控件就继承于该控件。import android.content.
2015-05-13 15:38:55 2322
转载 Paint PorterDuff及Xfermode详解
利用ProterBuff.Mode我们可以完成任意2D图像测操作, 比如涂鸦画板应用中的橡皮擦效果,绘制各种自定义的进度,等等很强大的效果,下面请看具体的介绍: 1. Xfermode: Xfermode有三个子类 : AvoidXfermode 指定了一个颜色和容差,强制Paint避免在它上面绘图(或者只在它上面绘图)。 PixelXorXfermode 当覆盖已有的颜色时,
2015-05-13 14:14:43 993
原创 在Android上测试异步任务——单元测试
Android中的测试(宽泛的定义)是一个单元测试集合的扩展。涉及初始化、关闭测试,包含setUp()和tearDown()操作,使用反射 的方式推断出不同的测试方式(从JUnit4开始我们就可以使用注释来指定的优先级和执行所有测试)。一个典型的测试结构如下:public class MyManagerTest extends ActivityTestCase { public MyMana
2015-05-04 17:55:57 2250
原创 java.lang.RuntimeException: Unable to instantiate activity
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xxx}: java.lang.InstantiationException: can't instantiate class xxx这是在启动一个activity的时候报的错误,原因是:在xxx这个activity定义成了abstract抽象类,把它改为
2015-03-23 13:55:22 2927
转载 Fragment的setUserVisibleHint方法实现懒加载
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?答案就在Fragment里的setUserVi
2015-03-14 11:39:11 1131
转载 Android开发规范:性能及UI优化
一、Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和,字母全部大写,单词之间用隔开 4.layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如下
2015-03-11 15:26:12 1102
转载 Java开发者易犯错误Top10
转自 http://www.csdn.net/article/2015-02-13/2823958Top1. 数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:[java] view plaincopyList list = Arrays.asList(arr); Arrays.asList()
2015-02-15 11:05:53 878
原创 Hello Go
学一门语言,都是从”Hello world”开始的,现在来写下Go版的Hello Go。在此说明下,因为学习Go这门语言,有的时候在家里,有的时候在公司,所以开发环境有在win7下的,也有在ubuntu下的。 在上一篇,我已经安装好了GO及其开发环境看这边,现在打开Eclipse,New一个Go Project,项目名称取名为HelloGo,目录结构如下: 接着,新建一个go文件
2015-02-14 13:56:58 1160
原创 Go 安装
下载安装GO的包 go安装包本文将讲述在win7-32和ubuntu 14.04系统下go的安装,所以我下载了go1.4.1.windows-386.zip和go1.4.1.linux-386.tar.gzwin7下的安装 go1.4.1.windows-386.zip 解压得到go的根目录(我所在的目录:E:\go\go)。环境变量配置 右击“我的电脑”->”属性”->”高级系统设置”->
2015-02-13 14:37:45 2396
原创 如何让ScrollView充满整个屏幕
有时候,我们在写布局的时,在最外层会套一个ScrollView,以防止内容超出屏幕的时候可以滚动。但如果这时候,内容不足以覆盖整个屏幕时,ScrollView 的android:layout_height="match_parent"属性是无效的,它始终都是wrap_content,这时可以使用android:fillViewport="true"让它生效。
2015-02-12 15:47:51 5270
原创 使用universal-image-loader时报异常java.io.IOException: Mark has been invalidated.
在使用universal-image-loader加载图片的时候,在BaseImageDecoder.defineImageSizeAndRotation->imageStream.reset()执行的时候报如下异常:01-25 18:35:19.777: W/System.err(4784): at java.io.IOException: Mark has been invalid
2015-02-04 10:35:35 3411
转载 android 画图paint之setXfermode
本文转自:http://blog.csdn.net/wm111/article/details/7299294setXfermode 设置两张图片相交时的模式 我们知道 在正常的情况下,在已有的图像上绘图将会在其上面添加一层新的形状。 如果新的Paint是完全不透明的,那么它将完全遮挡住下面的Paint; 而setXfermode就可以来解决这个问题
2015-01-19 16:19:50 971
转载 必须Mark!43个优秀的Swift开源项目推荐
转载自 http://www.csdn.net/article/2015-01-09/2823502-swift-open-source-libs作为一门集百家之长的新语言,Swift拥有着苹果先天的生态优势,而其在GitHub上各种优秀的开源项目也层出不穷。本文作者@SwiftLanguage从2014年6月苹果发布Swift语言以来,便通过跟踪、归纳、汇总持续更新《Swift语言指
2015-01-14 09:42:58 1094
转载 mysql创建定时任务
一、前言 自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执
2015-01-07 11:04:43 860
原创 使用ViewPager时,发生内存溢出OOM问题
今天在制作应用某个功能的引导页时,使用了ViewPager进行页面切换,每个页面就放了一个ImageView,使用背景图来进行展示,由于多图(11张)的原因,导致了OOM问题,这里总结一下。 代码如下:public class GuideActivity extends Activity implements OnPageChangeListener{ private Vie
2014-12-19 14:07:48 7708 4
原创 android API Demo之使用ViewFlipper制作轮播广告
ViewFlipper官网的介绍:Simple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each chil
2014-12-08 14:04:18 2252
原创 APIDemo动画之Interpolator
Interpolator 是被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
2014-11-21 17:11:11 1795
原创 经典算法大全之费式数列
背景说明Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三只免子,三个月后有五只免子(小免子投入生产)......。如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生产,类似的道理也可以用于植物的生长,这就是Fibonacci
2014-11-21 11:34:50 1860
原创 mysql忘记密码怎么办?
mysql有时候忘记密码了怎么办?我给出案例和说明!一下就解决了! Windows下的实际操作如下 1.关闭正在运行的MySQL。 2.打开DOS窗口,转到mysql\bin目录。 3.输入mysqld --skip-grant-tables回车。如果没有出现提示信息,那就对了。 4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到m
2014-11-14 12:02:09 963
原创 android api Demo之自定义Animation,实现3D旋转效果
android的API Demo提供了很多有趣+很有用的Demo,本
2014-11-13 18:07:25 3332 2
原创 android使用ksoap2-android调用webservice时报java.io.EOFException错误
报错代码如下:java.io.EOFException at libcore.io.Streams.readAsciiLine(Streams.java:203)at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:547)at libcore.net.http.HttpEngine.readResponse
2014-11-11 16:30:28 3989 3
原创 自动轮播,类似字幕或图片自动滚动播放
功能:ListView没隔一段时间自动滚动一段距离,当滚动到底部时,又从头开始显示,类似于原始数据为0123,而滚动起来则是012301230123...一直重复显示,这样就达到了信息轮播的功能。本功能采用扩展ListView来实现的,public class AutoCircleScrollListview extends ListView implements OnScrollList
2014-10-25 15:51:02 2639
jenkins插件
2015-12-08
AutoScrollViewPage+viewpagerindicator实现广告自动播放功能
2015-02-25
信息系统项目管理师论文大全
2013-10-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人