- 博客(99)
- 资源 (7)
- 收藏
- 关注
原创 魅族 Notification 遇到的奇葩问题
推送集成碰到恶心问题,早上还好好的下午日志是正常的,通知栏死活弹不出来,各种排查,收消息,解析,创建通知栏。最后问题定位到Notification 的context上面。通知栏这样创建的:NotificationCompat.Builder builder = new NotificationCompat.Builder(this); builder.setContentT
2017-04-14 16:34:17
2714
原创 友盟消息推送 3.x 的坑爹问题 s=-11,s1=accs bindapp error
客户端需要从百度推送切换到友盟推送,太久没看了就去看看了集成文档。 写Demo的过程还算顺利,几分钟就搞定了,但是往项目迁移的时候出出现了坑爹问题,为啥说坑爹呢?因为我用的复制粘贴啊,怎么会失败。但是事实就是失败了初始化的时候提示:s=-11,s1=accs bindapp error不明白,就去Umeng论坛搜索。Umeng小秘书粘的各种答案都基本上都不解决问题,下面问这个问题的人
2017-04-13 14:05:04
9639
5
原创 IJKPlayer 遇到的诡异问题
今天重新封装播放器界面的时候发现了一个诡异的问题。 覆盖在ijkplayer上层的View莫名其妙消失了,View确定已经被addView 到了ContentView中,但是视图里就是看不到,debug也确定了被add的View已经有了Parent,add两次的时候会抛异常。那更ijkplayer又有什么关系呢?当我把ijkplayer remove掉之后,看不
2017-04-12 12:52:23
3719
1
原创 仿微信滑动退出Activity
原理一句话就能描述清楚。重写Activity的dispatchTouchEvent,滑动的时候拿到Activity栈中栈顶Activity的上一个Acticity的ContentView添加到栈顶Activity的DecorView中,滑动的过程中做视图平移,滑动结束之后把前面拿过来用的ContentView归还给上一个Activity,然后finish当前Activity。
2016-12-28 10:40:17
1876
原创 一小时搞明白注解处理器(Annotation Processor Tool)
Java中的注解是个很神奇的东西,还不了解的可以看下一小时搞明白自定义注解(Annotation)。现在很多Android的库都用使用注解实现的,比如ButterKnife,我们不防也来学习一下,学完注解处理器,我们尝试写一个简单的类似ButterKnife的东西来绑定控件。什么是注解处理器? 注解处理器是(Annotation Processor)是javac的一个工具,用来在编译
2016-12-16 17:38:13
27423
1
原创 一小时搞明白自定义注解(Annotation)
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布原文链接:http://blog.youkuaiyun.com/u013045971/article/details/53433874什么是注解 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过...
2016-12-02 15:24:43
40156
4
原创 RxJava和Retrofit结合使用
前言:前段时间花了点时间学了一下RxJava和Retrofit,后面在实践中被没有用到,今天一看,呃,怎么又忘得差不多了。
2016-11-09 10:51:42
1703
原创 如何提问?
这篇文章时在平时的学习和工作总结的一些现象。当遇到自己不会的问题时下一步该怎么办?然后我就发现有些小伙伴只要碰到问题了,任何大小的问题,哪怕只是单词写错了,可能是文件名写错了,不管这个问题难还是简单,他的第一反应就,哎呀完了,这手机要原地爆炸了,天要塌了,就是这种感觉,然后火急火燎的问,“快快快,给看一下,这是什么问题啊,这这这这这这这.......怎么了怎么了怎么了了了了了了.......”。甚
2016-09-23 22:26:52
1634
1
原创 一点感悟
如何让文章阅读高?1.上网站推荐,借助网站本身的流量引流。这种方式,最简单最直接,不管你写了啥,有无营养,只要能再博客主页挂一会,总有人点进来看的2.干货吸引粉丝关注。这种需要花费一定的时间和精力,去观察最近流行什么,热点技术之类的,然后写一写教程啊,剖析啊啥的文章。吸引别人关注你,就像博主一样,撸的一手自定义控件,左手画圆,右手画方之类的有了这些寥寥无几关注着。3.卖情怀,讲故事。卖情怀就像老罗
2016-08-08 11:28:23
2172
14
原创 猎豹"快切App"中用到的Android开发技巧探索[附源码]
原文链接:http://blog.youkuaiyun.com/u013045971/article/details/52119117前景提要: 什么是块切? 快切是从猎豹的Clear Master中分离出来的一个悬浮窗小工具。因为对这个比较感兴趣,博主断断续续花了2个月时间完成了一个类似块切的版本,起了个名字叫“Well Swipe”,中文名叫“Well 划划”。本文会针对Well 划划开发中遇到的一些坑和和技巧做一个分享。来给大家揭密块切开发过程中用到的自定义控件技术细节。在这里还
2016-08-05 01:56:50
9373
33
原创 最近写的一个控件——Well Swipe 拖拽排序实现
Protocol Buffersprotocol buffers 是一种平台无关的,中性的,可扩展机制的序列化结构化数据What are protocol buffers?Protocol
2016-04-20 00:50:25
4174
2
原创 最近写的一个控件——Well Swipe beta 1.0
最近花了大概一个半月的业余时间写的,从没有到有,中间也碰到了很多的坑,一点一点的都啃过去了...还有很多的地方需要优化,比如1.编辑状态下如何对比原有数据的和编辑过之后的,选择一种效率最高的方式进行数据库的更新,目前走的做法是把现有的全删了,然后把编辑过之后的重新插入,但是明显感觉到会耗费时间。2.编辑状态下删除一个如何进行过度动画。3.创建文件夹等高级功能4.主题功能
2016-04-11 10:26:48
1690
2
原创 Android Mqtt
本文介绍在Android上使用mqtt,附上客户端demo和服务器demo。mqtt资料自行百度客户端:别忘了加联网权限public class MqttService extends Service { private String host = "tcp://192.168.1.184:1883"; private String userName =
2016-02-28 19:08:45
4366
1
原创 Mac安装Protobuf编译Java
本文整理了再在Mac上安装Protobuf 和编译Java的详细过程在Mac上安装protobuf创建一个java项目,编写.proto文件用protobuf编译生成java文件,测试用wire编译生成java文件,测试1.protobuf下载地址:https://github.com/google/protobuf/tags?after=v3.0.0-alpha-1Git
2016-01-27 12:55:01
10018
原创 Android自定义控件——ExpandTextView
本文介绍一个这样婶儿的TextView,如图:点击的时候TextView会伸缩,有种Clip的感觉,原理也很简单,就是把两个TextView重叠起来,一个现实固定的行数的文本,另一个现实全部的文本,初始化的时候,容器的高度等于固定文本的高度,完全展开时的高度等于文本显示全的高度,过程用一个动画控制就可以了。下面贴代码:ExpandTextView.javaimport
2016-01-25 00:36:18
6281
原创 Android自定义控件——PullZoomView
本文介绍PullZoomView的简单实现,如图:就是通过下拉ListView或者ScrollView或者更多的View如GridView,RecycleView等等,的时候对Header有一个放大缩小的效果实现思路就是根据所需要封装的不同的下拉控件来做不同的实现,比如:ListView:该控件本身有添加Header的功能,我们只需做简单的处理就可以用了,在满足一定条件
2016-01-15 00:24:22
5170
1
原创 Android自定义控件——Indicator
Indicator确实是个老梗了...有重写HorizontalScrollView的,有重写LinearLayout。这个是重写LinearLayout的哦,往LinearLayout里add TextView用作tab标签,在LinearLayout底部画一个矩形当作指示器。ViewPager滚动的时候用简单的小学加减乘除混合运算来机选这个矩形位置,然后滚动就好了
2015-12-02 22:49:30
4199
2
原创 Android自定义控件——手把手教你实现SlidingMenu(二)
上篇回顾:上篇中创建了项目的基本组成,并且成功的把Activity的contentView set 给了我们自定义的RelativeLayout中的SlidingMenuAbove系列二 本片介绍如何实现基本的滑动动作手指在SlidingMenuAbove上左右滑动的时候SlidingMenuAbove在一定的情况下跟随手指滑动松开手指后Sliding完成余下
2015-11-10 21:58:52
2151
原创 代码优化——抽象ViewHolder和BaseAdapter
本文介绍通过抽象ViewHolder和BaseAdapter来简化我们重写BaseAdapter时的步骤前提描述:我们在使用ListView时自然要用ViewHolder来优化ListView,步骤往往是,1.继承BaseAdapter,2.创建一个ViewHolder类,3.在getView中做处理当我们app有很多很多个ListView或者GridView时,写很多很多BaseAdap
2015-10-27 01:59:25
2113
原创 设计模式——建造者模式(Builder)
从做煎饼果子来理解建造者模式概念1.基本概念建造者模式是一种对象构建的设计模式,它可以将复杂对象构建的过程抽象出来,通过抽象过程的不同实现方法可以构造出不同属性的对象。2.UMLProduct 被构造的复杂对象,ConcreteBuilder创建该产品内部表示和装配过程Builder
2015-10-14 23:15:50
1389
原创 快速集成微信支付和支付宝支付
本文介绍博主自己封装的一个微信支付和支付宝支付的libraryapppay_library:https://github.com/Mingwei360/apppay本项目解决的问题仅限于最后的支付环节,即你告诉我多少钱,我带着这个多少钱的信息发起微信支付或者支付宝支付,仅需简单的配置信息,然后每次支付只需调用三句代码即可发起支付,封装了对订单信息的拼装,订单的签名等。不牵扯订单的处理,订单
2015-09-28 20:47:37
8567
原创 Android自定义控件——手把手教你写出Google样式的ProgressBar
本文详细地给大家介绍一下如何实现一个Google样式ProgressBar这里有个相对简单的热热身先 Android 自定义控件——Simple_Loading看图先:balalala好了,我们要实现的就是这样的效果分析:根据前面链接中的重写方式,我们需要重写一个View,然后在View中通过计算来画圆弧,从而实现一个LoadingBar,我们回过头来想想,既然系
2015-09-23 00:20:24
3440
原创 Android 自定义控件——Simple_Loading
本文介一个简单的自定义加载圈的实现先看看效果:继承View,和一系列的自定义属性在画布上实现的Loading的效果效果总共三中:1.弧度Loading2.圆Loading3.可以设置1-100的数字,表示百分比,并在Loading上表示相应的百分比效果属性文件和属性的意义:
2015-09-08 00:57:34
2598
原创 Django中app的urls的配置和基本的数据查询
本文介绍Django中的urls的配置:主项目与app之间的urls的配置,以及简单的用app/view.py 查询数据库,并显示在app/templates/xxxxxx.html中。配置app的urls数据库查询并显示到页面一.根据前面两篇内容我们已经大致了解的了Django的项目结构,以及如何创建app,如何创建视图,接下来我们来给app创建一个模板(templates)
2015-09-06 01:36:55
4953
原创 Ununtu 15.04 安装MySql(Django连接Mysql)
本文介绍Ubuntu 15.04下安装Mysqlubuntu 15.04安装mysqldjango项目连接mysql一.1.sudo apt-get install mysql-server 2.apt-get install client3.sudo apt-get install libmysqlclient-dev安装过程中会提示输入用户密码,输入即可。
2015-09-05 00:17:41
2287
原创 Django 快速上手(一)
初识DjangoUbuntu 15.04下配置Django环境第一个Django项目一。在ubuntu下配置django环境开发环境Linux/Ubuntu 15.04 python 2.7.6 django 1.8安装Python安装pip,用命令 sudo apt-get install python-pip安装Django,方法1:使用上一步安装的pip:sudo
2015-08-31 00:07:28
2166
原创 Android 自定义Activity基类
我们在开发App的时候有时候碰到多个界面有一个共同点的时候,比如,都有相同的TitleBar,并且TitleBar可以设置显示的文字。TitleBar上的点击事件,如果给每一个Activity都写一遍TitleBar是一件非常费事的事情,这个时候我们就可以重写一个Activity基类,让其他有相同点的Activity来继承这个类,从而省去了很多的重复不必要的工作。提高了效率。如图:
2015-08-25 01:07:36
8877
1
原创 Android 自定义主菜单
本文介绍一个超简单的自定义主菜单,效果如下:原理:其实就是对原生的Dialog的一个简单的封装。并加上显示和隐藏的动画效果。再给控件加上回调事件。TestDialog.javapublic class TestDialog implements OnClickListener { private Context mContext; private Dialog mD
2015-08-25 00:26:04
3999
1
原创 微信第三方接入遇到的科恩(坑)——登录、分享
今天由于业务需要翻看了微信的开发平台和相应的接口文档然后一边看,一边骂娘微信开发者文档中的科恩!科恩目录微信分享微信登录一.微信分享是之用户通过第三方的app发送内容到微信,可以是群组,好友,朋友圈。如下:开放平台的权限显示,应用审核后不需要认证300块的开发者也是可以分享内容的。 于是我天真的以为我快要成功了,我创建了
2015-07-28 00:53:38
6785
1
原创 【C++基础】——拷贝构造函数的浅拷贝和深拷贝
C++中用拷贝构造函数来进行实例拷贝时的操作如下例子,我们在进行实例复制时,发现默认构造方法并没有被重复调用,事实上是调用了拷贝构造函数来进行实例的复制操作。#include#include#includeusing namespace std;class Apple{public: Apple(string _name){ m_name=_name; co
2015-07-12 00:17:04
876
原创 【C++基础】——const关键字
本文介绍C++中的关键字constconst用来控制C++中的变量是否可以变化const与基本数据类型const与指针类型const与引用1.const与基本数据类型int a=2;//变量//变量名: a//存储地址:&a//存储内容:2加上const之后,变量就变成了常量const int a=2;//常量//变量名:a//存储地址:&a//存储内容
2015-07-08 23:15:29
870
原创 【C++ 基础】——引用
基本数据类型的引用#include int main(void){ int a=3; int &b=a;//引用必须初始化 b=10; cout<<a<<endl; return 0;}输出结果:10改变的引用&b的值,a的值也跟着变结构体类型的引用typedef struct{ int x; int
2015-07-07 22:57:14
847
原创 NDK 使用实例
本文介绍Android 使用 NDK的几个实例实例:使用NDK读写SD卡文件JNI 数组处理一.使用NDK读写文件定义Java层方法,该方法传递一个存储路径到C编译头文件编辑C文件并编译生成so库运行测试1.本例实现一个用从Java层传递一个路径到C层,在C中创建一个文件,在文件中写入内容并保存。事先声明Java 层的Native 方法public cl
2015-06-11 00:42:35
1643
原创 Eclipse NDK 打印LOG信息
本文介绍Eclipse 的 NDK 环境如何打印log信息如何编译NDK项目请参考 NDK使用流程流程在C中引用头文件,定义TAG、LOG 宏配置 Android.mkJava编写测试方法1.编辑c文件引用android/log.h 头文件#include 添加宏 TAG 、LOGV#define TAG "Gmw"#define LOGV(.
2015-06-11 00:21:14
1740
原创 NDK 使用流程
本文通过一个简单的java调用c语言的例子来介绍NDK的使用流程使用流程创建一个Android项目创建native方法编译生成头文件 .h 文件编写c文件编译c生成so文件,调用1.创建一个Android项目2.创建native方法:public class MainActivity extends Activity { public stati
2015-06-06 21:27:22
1139
原创 Django 的安装和配置
本文介绍在Ubuntu 上搭建Python Web 框架Django和编写一个简单的Web应用程序用pip命令下载安装Django框架如果你的机器上没有pip请先安装:之后用命令安装Django:用 django-adim 产看所有的django命令:
2015-05-17 23:57:59
1229
RxJava与Retrofit结合使用案例
2016-11-09
Retrofit2和RxJava结合使用例子
2016-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人