- 博客(20)
- 资源 (7)
- 收藏
- 关注
原创 Android中播放webp动画的一种方式:FrameSequenceDrawable
简介本篇主要是介绍FrameSequenceDrawable的相关实现原理的文章,FrameSequenceDrawable是Google实现的可以播放Webp动画的Drawable,这个并没有在SDK里面,但是我们可以在googlesource中看到相关的代码,FrameSequenceDrawable相关代码地址播放效果在介绍之前,我们可以先看一下播放效果: 我想直接...
2018-03-14 11:53:24 4760
原创 Android8.0对于CoordinatorLayout、RecyclerView 精准fling的优化
之前为了开发需求,学习了NestedScrolling机制,并使用CoordinatorLayout、AppBarLayout、RecyclerView配合实现了相关的效果,还写了一篇关于分析原理的文章关于CoordinatorLayout AppBarLayout原理的一些分析,当时做完需求以后,内心其实是一只有种遗憾的,因为在使用RecyclerView时,对于向上滑动的fling效果其实是有...
2018-03-14 11:52:45 5694 2
原创 关于CoordinatorLayout AppBarLayout原理的一些分析
这几天学了一些CoordinatorLayout、AppBarLayout配合使用的一些方法,之前还写了一篇CoordinatorLayout Behavior一些笔记,通过这几天对源码的阅读,现在对CoordinatorLayout、AppBarLayout这部分的内容有了更深一层的理解,接下来我就把我所理解的源码简单的分析一下。一、 NestedScrolling机制Coordinat...
2018-03-14 11:51:24 749
原创 Android标签容器控件的实现
Android中标签容器控件的实现,在一些APP中我们可以看到一些存放标签的容器控件,和我们平时使用的一些布局方式有些不同,它们一般都可以自动适应屏幕的宽度进行布局,根据对自定义控件的一些理解,今天写一个简单的标签容器控件,项目源码在最后给出。
2016-07-21 14:57:00 1803 1
原创 Android轮播图的实现
Android轮播图的实现这几天看了《Android开发艺术探索》这本书真的是挺不错的,学了自定义View之后打算动手实践一个轮播图控件,网上有很多实现的方法,我最后实现起来跟他们也基本上都是大同小异,主要我也是为了练练动手能力。先来个效果图,图片是在百度搜的正经图片 分析实现轮播图的方式大体上我看到了三种,一是使用安卓的Gallery控件来实现,二是使用HorizontalScrollView,
2016-07-18 15:52:47 2782 3
转载 Android AsyncTask完全解析,带你从源码的角度彻底理解
原文:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。不过为了更加方便我们在子线程中更新UI元素,Android从1.5版本就引入了一个AsyncTask类,使用它就可以非常灵活方便地从子线程切
2016-03-18 14:23:04 321
原创 数独游戏的简单回溯解法
今天哥们儿突然让我帮着解个数独,一开始以为只要循环遍历就可以了,后来想想有些太麻烦,想着自己以前写过八皇后问题,研究了一下,还真弄出来了,高兴!#include #include int num[9][9];int posX[81]= {0};int posY[81]= {0};int resCount=0;using namespace std;void print(){
2015-11-18 23:28:53 969
转载 Integer与int的比较
如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。 首先看代
2015-10-06 20:56:33 324
转载 stringBuffer 和 stringBUilder 的区别
相信大家看到过很多比较String和StringBuffer区别的文章,也明白这两者的区别,然而自从Java 5.0发布以后,我们的比较列表上将多出一个对象了,这就是StringBuilder类。String类是不可变类,任何对String的改变都会引发新的String对象的生成;而StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象,可变和不可变类这一对对象已经齐全
2015-10-05 22:44:14 319
原创 模拟Listener对button的监听过程
今天突然冒出一种想法,看看自己到底理解不理解平时对各种按钮实现监听的过程,就用c++简单实现了一下!首先是写一个抽象的Listener类,java中有接口,C++中就只能使用抽象类了。Listener类的.h文件,只需要看.h即可,因为在.cpp中没有需要实现的方法。#ifndef LISTENER_H#define LISTENER_H#include "Button.h"cl
2015-08-09 23:00:25 436
原创 快速排序
快速排序的基本思想:在顺序表中随机选取一位作为基准位,通过由两边像中间扫描,将不大于基准的元素放在左侧,不小于基准的元素放在右侧,将基准位作为中间节点,两侧分别递归进行快速排序,直到分组元素个数小于等于1;一般我们都以第一位作为基准位,代码如下:#include #include #include #define LENGTH 10using namespace std;void p
2015-05-15 13:28:54 311
原创 冒泡排序
#include #include #define length 10using namespace std;int num[length];void print(){ for(int i=0;i<length;++i) { cout<<num[i]<<' '; } cout<<endl;}int main(){ for(i
2015-05-12 21:45:38 299
原创 Android中ListView的Adapter和ContextMenu
好长时间没写listview了,前几天在写的时候忽然发现都忘了,今天就写个博客记录一下吧。首先,安卓的Listview如果想显示内容的话,需要我们为其设定一个Adapter适配器,可以使用系统中提供的SimpleAdapter,但是我更习惯于自己编写一个Adapter继承于BaseAdapter。首先是适配器的实现:package com.humorousz.listviewdemo;
2015-05-11 21:00:40 792
原创 Android中再按一次退出效果的简单实现
在软件退出时,为了友好的提示用户是否真的想退出程序,在PC机上我们往往是采用弹出messagebox的方法,虽然安卓中也有类似的控件,但是使用起来并没有那么的方便。现在大多数程序设计的提示方式往往就是“再按一次退出”这样会增加用户的体验感。 我们实现思路就是,在程序中定义一个变量来表示反应时间,即用户在什么时间范围内按下返回键才会退出。需要定义一个记录上次按下返回键时间的变量,这样通过在O
2015-04-01 14:55:15 981
转载 C++中const对象与const成员函数
在自定义类型前加入const修饰符,可以将对象声明为常对象(如const MyClass A)。自定义类型的const常量不仅像基本数据类型那样不可以作左值,而且const对象的任意成员变量也不能被修改(mutable成员变量除外),为了保证const对象成员变量不能被修改,C++中规定了const对象只能调用一种特殊的成员函数——const成员函数。所谓const成员函数,就是不修改对象...
2015-03-26 14:04:47 536
转载 C++中有关const修饰指针和变量
const限定符以及const修饰指针生命 1.const关键字并不是c++中特有的关键字,而是c90中新增的标准。const经常被我们用于常量的声明和指针的修饰。当变量被const限定符修饰时,该变量称为常量(如const int a=10),常量就是不能作左值的变量,const修饰的常量存储在数据段,并且只能读取,所以在生命const常量时必须进行初始化,否则编译器会报错(如const i...
2015-03-25 22:24:03 605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人