自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 高效的加载大分辨率的图片 bitmap

在实际项目中,会遇到很多需要处理各种图片的地方。在很多情况下,图片的分辨率会特别高。特别是现在手机发展速度快速,拍摄出来的照片动辄10多M,当我们查看这些照片的时候,如果不经过任何处理,不仅在加载速度会很感人,而且耗费的内存很可能导致内存超出应用的可用内存,所以在加载大分辨率图片之前进行适当的处理十分有必要。处理的步骤主要分为如下两部分:读取带加载图片的尺寸和类型我们知道,BitmapFactory

2016-08-09 20:30:18 2679 1

转载 Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/44171115大家好,欢迎继续回到Android属性动画完全解析。在上一篇文章当中我们学习了属性动画的一些进阶技巧,包括ValueAnimator和ObjectAnimator的高级用法,那么除了这些之外,当然还有一些其它的高级技巧在等着我们学习,因此本篇文章就对整个属性动画完全解析系

2016-08-09 17:12:50 301

转载 Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了。但是,正如上篇文章当中所说到的,属性动画对补间动画进行了很大幅度的改进,之前补间动画可以做到的属性动画也能做到,补间动画做不到的

2016-08-09 17:09:49 289

转载 Android属性动画完全解析(上),初识属性动画的基本用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation)。逐帧动画的工作原理很简单,其实就是将一个

2016-08-09 17:06:49 262

转载 对称 非对称 加密算法在网络通信中的应用

最近在学习指纹支付相关的知识,这篇博客是讲解有关加密解密相关知识的,原文地址如下: http://blog.csdn.net/ly131420/article/details/384005831、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公钥密码体制(public-key cryptography)公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解

2016-08-01 17:12:57 1127

原创 单例模式创建Volley框架的RequestQueue

总所周知,每次使用Volley处理网络请求都需要将网络请求加入到一个RequestQueue的队列中去,当使用网络请求的Activity或者Fragment较少时,我们大可以在每次使用前实例化一个RequestQueue。但是当网络请求频繁且使用的

2016-07-21 20:08:28 1570

原创 RecyclerView 添加点击事件的几种方法

相较于ListView,RecyclerView没有提供诸如setOnItemClickListener()方法,便捷的为每个子项添加点击事件,所以我们需要费一些功夫,手动去处理这些。第一种方法:ViewHolder首先是第一种方法,利用ViewHolder,直接上代码:public class ContactsAdapter extends RecyclerView.Adapter<Contact

2016-07-18 17:48:04 905

原创 java.lang.IllegalStateException: The specified child already has a parent 错误处理

今天在项目中发现,ViewPager的内容在动态更新之后,重复点击使用可能出现如题所述的错误,而根据错误日志的描述,错误的根源是在adapter中的instantiateItem()方法。而该问题的解决办法在StackOverflow中已经有了很好的解释,下面原文搬运如下: The problem is that in your adapters method instantiateItem

2016-07-14 11:35:21 304

原创 RecyclerView更新数据

前面一篇博客介绍了RecyclerView的上拉加载,在这篇博客中,我们向adapter数据源中添加了新数据之后,使用的是notifyDatasetChanged()方法,但是实践发现,在不同的手机上运行的时候可能会出现如下图所示的错误: 解决的办法有多种,可以参考StackOverFlow我选用的方法,是弃用notifyDatasetChanged()方法,而是根据下图选择需要的更新数据方法

2016-07-13 11:05:40 899

原创 RecyclerView的基本使用(三)--下拉加载功能

在项目中,遇到一个需求,RecyclerView的数据源较多,一次加载完比较耗时,且这些数据都是来自于网络或者其他地方,都可以采用下拉加载的功能来达到目的。对RecyclerView不太熟悉的,可以先看这两篇博客RecyclerView的基础和RecyclerView返回不同的View。核心思想利用RecyclerView的OnScrollListener判断当前是否滑动到底端,如果滑动到了底端,那

2016-07-12 11:36:24 1490

原创 RecyclerView基本使用(二)-- 返回不同类型的View

上一篇博客RecyclerView的基本使用讲述了Recycler最基本的使用方法,这篇博客主要围绕如何在一个RecyclerView呈现不同的Item。要实现在RecyclerView呈现复合Item,主要要在RecyclerView.adapter中的以下三个方法做处理:getItemViewType()onCreateViewHolder()onBindViewHolder()具体实现

2016-07-06 17:53:45 800

原创 RecyclerView的基本使用

概述RecyclerView是google推出用来代替ListView和GridView的,可以在最近的support-V7中找到。相比于大家熟悉的ListView和GridView,RecyclerView在扩展性有着独特的优势,尤其是它仅支持垂直布局还支持水平布局。根据官方的说法,如果RecyclerView尤其适合需要展示的数据有可能会伴随用户的操作改变时使用。如果大家想要使用Recycler

2016-07-06 09:52:51 463

原创 Context的使用

今天逛简书,发现了一个特别不错的网站 CodePath,这个网站涵盖了Android开发的方方面面,适合各个阶段的开发者。 当然,也特别适合我,以后争取每周学习一到两篇适合自己的文章。总览Context(上下文)为我们提供了获取应用程序状态的方法。它使得Activity,Fragment和Service可以访问到资源文件、图片、主题/风格以及外部目录的位置。同时,它也让我们可以使用Andorid内嵌

2016-07-04 20:19:07 404

原创 ViewPager与SwipeFreshLayout(下拉刷新)滑动冲突的解决

最近在项目中,有一个页面的头部是ViewPager滚动导航页,同时该页面又必须支持下拉刷新来更新UI。但是当两个空间组合在一起后,会发现ViewPager的滑动极为不顺畅,甚至可以说无法滑动的地步。究其原因,因为ViewPager的滑动是水平方向的,但是在用户实际使用中,很难做到水平滑动完全水平,一旦出现竖直方向上的滑动分量,就很容易触发下拉刷新的效果,从而导致ViewPager的滑动失败。所以我们

2016-07-04 15:52:16 1749

原创 Bitmap too large to be uploaded into a texture

今天想往一个ImageView中添加一个图片,发生了如题的异常,最终ImageView加载图片失败。Google了几种解决方式。第一种,解除限制: Android 所有的渲染都是基于OpenGL的硬件加速,简单说就是硬件加速的时候,对图片的大小有限制。不同设备可能有不同的最大值。所以最粗暴的解决方式就是关闭硬件加速,在AndroidManifest文件中添加如下语句:<application an

2016-06-29 19:28:41 1028

原创 Android色彩矩阵处理图像

最近在做个人项目时,遇到了这样一个需求,在获取到网络上图片之后,需要对图片的亮度进行一些处理,学习了一下Android中如何通过色彩矩阵处理色调、饱和度和亮度的知识,在这篇博客中记录一下供以后查阅。Android中对于图片的处理,最常使用到的数据结构是位图——Bitmap,它包含了一张图片所有的数据。这个数据都是由点阵和颜色值组成的,所谓点阵就是一个包含像素的矩阵,每一个元素对应着图片的一个像素。而

2016-06-28 16:41:30 2154

原创 WebView 加载HTML和CSS

个人开发项目中需要使用WebView加载一些网络上的内容,目前还没有深入的学习,这篇博客首先简单的记录一下WebView加载html和CSS的相关方法。加载html无非有三种情况:一、存放在assets文件夹下的html文件;二、直接加载某个指定的网页。 三、从网络上解析得到的html代码,注意此处是代码,即字符串格式。前两种情况比较类似: 首先获取WebView的控件:mWebView = (

2016-06-26 20:10:07 8425 1

原创 关于Android Studio中放置assets文件夹

与Eclipse不同,新建Andorid Studio工程并不会自动创建asset文件夹,原因是Android Studio使用了基于Gradle的全新构建系统。参考Gradle,我们可以知道assets文件夹应该放置在source sets之内,例如src/main/assets/在通常的Android项目中,我们的工程通常会有app/模块, 在这个模块下会有一个source set即app/sr

2016-06-26 17:30:37 975

原创 ListView的使用与优化

在实际开发中,会经常需要在程序中以列表的形式向用户呈现数据,并支持滑动点击等事件,那么此时我们就需要用到ListView这一控件。这篇博客就围绕ListView的使用方法和优化方法展开:四种Adapter一个ListView通常有两个功能:首先是把数据填充到(自定义)布局文件呈现出来,第二是支持用户点击交互。第一个功能很好理解,第二个功能实际上我们也只需要实现一个OnItemClickListene

2016-06-07 16:05:55 257

原创 Android 屏幕适配相关知识

这周第一次接触了视觉交互部门的稿件,要根据那边制定的视觉规范,编写适应所有Android机型的XML布局文件。这篇博客把自己学到的Android适配相关的知识记录下来,以便日后开发时查阅。基础知识Android屏幕适配相关的一些基本概念: 像素:px是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800就是指的像素。在设计领域中,像素是用来计算数码影像的最小单位

2016-06-02 19:28:48 483

原创 Intent-- FLAG_ACTIVITY_CLEAR_TOP

今天在项目中接触到了这么一个关键字,记录下来以备以后查看。首先来看代码:Intent intent = new Intent(FirstActivity.this, SecondActivity.class);it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);startActivity(intent);intent的源码,官方的解释如下:/** *

2016-05-31 11:52:52 422

原创 View的工作原理(1)--Measure

在Android中,View扮演着很重要的角色,任何一个App都离不开View控件。Android内置了一整套GUI库,供我们选择。但是在很多应用场景下,我们并不满足于只使用这些控件;原因有二:第一是容易引起界面的同类化,第二是有时候我们需要功能更强大的View控件。解决这些问题的最终途径是自定义View。为了学会自定义View,首先要了解一些有关View工作的基础和原理。本篇博客基于此目的,介绍了

2016-05-30 17:57:03 285

转载 Android自动化测试框架---Espresso(2)

上一篇文章介绍了有关android自动化测试的环境搭建,以及Espresso的简单用法,这篇文章主要针对一些比较复杂的控件,不易通过查找元素的方式寻找。 原文可见:https://segmentfault.com/a/1190000004392396AdapterViewAdapterView是一种通过Adapter来动态加载数据的界面元素。我们常用的ListView, GridView, Spi

2016-05-21 14:41:54 1006

原创 Android自动化测试框架---Espresso(1)

导语从这周开始负责编写维护项目的测试用例,主要的工作都是围绕google推出的针对Android的自动化测试框架Espresso,这篇博客主要用于记录有关Espresso的学习与使用心得。首先,先简单介绍一下Android自动化测试的思想。实际上就是通过测试用例,去模仿人的行为,我们主要关注的是测试用例出现后,手机上的UI(或者说是代码运行的流程)是否符合我们的预期,至于背后隐藏的数据我们并不关心。

2016-05-21 14:26:07 674

原创 Android EventBus的使用

Android EventBus的使用项目中用到了以前没接触过的EventBus, 初步学习之后记录一下EventBus的用法:一、概述EventBus是一款基于观察者模式针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅以及将发送者和接收者解

2016-05-15 16:03:09 444

原创 算法导论—排序算法学习(3)

三.堆排序  堆排序与归并排序一样,他们的时间复杂度都是o(log n),但是堆排序优于归并排序且与插入排序相同的是,任何时候都只需要申请常数个临时空间来存储数据。因此,堆排序是集合了归并排序与插入排序优点的一种排序方法。      涉及到堆排序,首先要了解堆这种数据结构。堆是一个数组,它可以被看成一个近似的完全二叉树,树上的每一个节点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且是

2015-03-18 17:14:11 334

原创 算法导论—排序算法学习(2)

二.归并排序   归并排序算法在思想上是借鉴了分治策略来解决问题的。而分治模式在算法结构上是递归的。    分治模式在每层递归时都有三个步奏:    分解原问题为若干子问题,这些子问题是原问题的规模较小的实例;    解决这些子问题,递归地求解各子问题。然而,若子问题的规模足够小,则直接求解;    合并这些子问题的解成原问题的解。   归并排序算法完全遵循分治模式。直观上也可以

2015-03-12 10:31:44 329

原创 算法导论—排序算法学习(1)

算法导论—排序算法学习(1)一.插入排序       插入排序有点类似于我们打牌时整理手牌的过程,以左手拿牌,右手起牌为例。左手上面的牌,总是按照从小到大(从大到小)的顺序排列,而右手拿上来的牌则根据大小在左手选择位置插入,从而依旧保证了左手手牌依然是有序的。       由这种思想引申过来,将数组中一串乱序的数字当做待整理的扑克牌,每次抽取一张牌,即每次处理数组中的一个元素,依次整理直到所有元素处

2015-03-11 22:16:16 289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除