自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解PhotoView的核心,以双击事件为例

核心对于一个ImageView或者说View来说,view的大小是不变的,那图片如何实现大小的变化呢?答案就是Matrix。 Matrix的定义:字面意思是矩阵,在Android中表示使用矩阵的方法来对图片进行变换。可以略微想象一下,图片有很多个像素点,每个像素点都有它的值,将图片看作一个矩阵,那么对图片进行旋转,缩放实际上就是对矩阵进行变换。Android对这个变换过程封装进了Matrix类。

2016-06-02 12:27:42 1711

原创 【日常】列表页优化历程

记录一下项目中列表页优化过程。页面布局 第一个关注的是列表页中item的布局层数。布局的层数越多,视图树的深度就越大,会增加测量和布局的时间。具体优化的方法是:使用RelativeLayout代替LinearLayout布局,在使用include来引入布局的时候,一定的情况下可以使用merge标签来减少一层viewgroup。 使用viewstub,有些布局可能暂时被隐藏,可以使用setVisiab

2016-04-30 00:51:08 515

原创 【非日常】AndroidStudio,opncv,ndk,jni,人脸识别示例程序

【非日常】AndroidStudio,opncv,ndk,jni,人脸识别示例程序毕设要做人脸识别。在网上查了资料,决定使用AS+NDK+JNI+OpenCV完成。于是就在坑摸爬滚打了几天。今天总算把OpenCV里的人脸识别示例程序运行起来了。现在的情况是:熟悉android,c/c++以前学过基础,没有在项目中使用过,opencv没有碰过。几个概念 NDK提供编译打包等工具,是一个工具的集合。提供

2016-03-22 16:27:13 3217

原创 Android使用Fiddler抓包

【日常】使用Fiddler抓包知乎上看到一个问题是,现在有什么有趣的api,赞最多的答案是自己去抓 =。= 那就抓一下吧 Fiddler 想到了费德勒 -。-原理Fiddler使用本地127.0.0.1代理。可以设置代理的浏览器和应用都可以监测。准备 安装Fiddler -。-废话 设置可以远程连接(为了抓app的包) 设置https(如果要抓取https的话) 安装官方下载地址: 下载地址下一

2016-01-19 14:17:50 652

原创 【非日常】Android事件体系

先提几个问题,然后去找找答案。首先要知道的是,Android的View的构成是树型的。 view提供了setOnClickListener()方法,和setOnTouchListener()方法给我们设置监听,哪个先执行 view传递的是什么? view(区别于viewGroup)中的touch事件是如何处理的? viewGroup是如何传递事件的? 设置的两种监听谁先执行?以TextView为例,

2016-01-17 22:39:54 380

原创 研究下EventBus

EventBus用法很简单,但是想想他是怎么实现各个组件之间的通信的呢?是如何在不同的线程中实现调用的呢?不是很明确呀,那就看看源码吧。涉及的东西 EventBus的作用 EventBus的使用方法 EventBus实现原理,结合源码解析。 为什么要写作用和使用方法?这些不是官方文档上都有么。我感觉过一遍可以帮助理解源码,并且可能get到不容易注意到的功能,so。EventBus的作用 simpli

2016-01-04 23:06:14 297

原创 在异步线程中使用主线程的handler

Android如何在异步线程中调用主线程的handlerAndroid的线程分为两种,一种是主线程,也叫UI线程,一种是异步线程。更新UI的操作只能在主线程中进行。但是更新UI有时是在进行网络请求等耗时操作之后。这些操作需要在异步线程中进行。 通过以下方法可以实现在异步线程里创建一个主线程的handler。btn_lin.setOnClickListener(new View.OnClickLis

2015-12-27 20:10:33 793

原创 RecyclerView+SwipeRefreshLayout使用细节

使用RecyclerView+SwipeRefreshLayout时出现了一些问题当连续快速下滑触发SwipeRefreshLayout时,SwipeRefreshLayout的浮标出现了卡顿或停止转动的现象。 这时要设置RecyclerView的setNestedScrollingEnabled(boolean enabled),设置为false,取消嵌套滑动,即当RecyclerView接收到滑

2015-11-25 22:01:36 718

原创 排序算法总结(上)

排序算法总结 最近秋招,遇到了好多排序算法的题目,这两天看了一些常用的排序算法,那就总结一下咯。(算法均由java实现) 参考文章点这里–排序算法总结 排序算法总结 冒泡排序 选择排序冒泡排序从大一就开始冒泡了oO~原理:冒泡排序从本质上讲是一种交换值的排序,把“正确的值”和“错误的值”进行交换。为什么叫冒泡呢?想象一下每次都把较大的值往末端放,就好像一个泡泡慢慢往上浮。 趟数:n-1

2015-09-13 14:11:09 341

原创 安卓实现2048

git地址:http://git.oschina.net/yccc/yc_2048/tree/master/yc_2048 第一步:根据屏幕的宽,画16个小正方形(textview)。首先,利用DisplayMetrics获取屏幕的宽度,然后计算每个小方块的宽度,再利用LayoutParams动态添加textview。基本思路就是这样。起初想了各种其他方法,都不能达到适配各种屏幕的效果,经过一些挣

2015-05-19 22:35:34 814

原创 viewpager+fragment实现滑动效果

viewpager+fragment实现滑动效果 基本步骤: 1.生成fragment 2.将fragment对象写入ArrayList中 3.新建ViewPaper对象 4.在布局文件中加入ViewPaper标签 5.重写FragmentPagerAdapter 6.新建FragmentPagerAdapter对象,将 getSupportFragmentManager()和Arra

2015-04-09 17:58:21 586

原创 Intent机制

Intent存在的意义:降低组件(同一程序或不同程序)间的耦合性,完成组件之间的通讯。 Intent对象:一个Intent对象是一个信息捆,里面记录了对这个Intent感兴趣的组件的信息。 Intent对象包含的信息: (1)组件名字 (2).动作 (3).数据 (4)类别 (5)附加信息 (6)标志 解析Intent对象: 1.显式Intent:通过名字指定目标组件,因为通常

2015-03-20 09:26:51 627

空空如也

空空如也

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

TA关注的人

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