自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 教你一步步集成友盟+推送(UPUSH)

因为安卓的开源的原因,很多厂商都自己定制了自己的系统,以至于安卓的碎片化特别严重。今天我们要讲的是推送这个功能,消息推送在Android开发中应用的场景是越来越多了,比如说电商产品进行活动宣传、资讯类产品进行新闻推送等等,1. 主流的第三方推送平台分类手机厂商类:小米推送、华为推送。第三方平台类:...

2018-05-17 15:38:15 12644 6

原创 阿里热修复AndFix的使用教程

一般我们开发了的APP在上线之前都会进行全面的测试,等APP测试基本稳定后,公司会进行封版,待上线。这时如果开发人员又发现了bug,但是又封版了,不能再修复,防止引入新的问题。这时这个bug的修复就只能是在下一个版本再修复。但是,如果是一个小小的问题,我们就总是不停的修复后,发布新版本,用户就要不...

2017-12-27 10:47:29 749 0

原创 异常捕获上传服务器

import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageMan...

2017-12-26 17:23:19 327 0

原创 gradle.properties的使用教程

一般我们都把全局属性都编写在一个工具类中,如果是有环境的切换的话,那么我们还会定义一个标志来进行相应的变换。对于项目而言,有时候需要配置某些敏感信息。比如密码,帐号等。而这些信息需要被很多类共同使用,所以必须有一个全局的配置。当需要把项目push到git上时,我们不希望别人看到我们项目的key,t...

2017-12-14 17:44:46 7210 1

原创 selector+shape使用工具类

为了避免在drawable文件夹下创建太多的selector,避免同一个样式,因为忘记了名字而重复创建。我们创建一个工具类来实现我们想要的样式,需要的样式,直接在代码中实现。 工具类如下:import android.content.Context; import android.content...

2017-12-11 10:00:01 379 0

原创 反编译以及代码混淆的简单介绍

要反编译apk需要下面3个工具: 1. apktool (资源文件获取) 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2. dex2jar(源码文件获取) 作用:将apk反编译成java源码(classes.dex转化成jar文件) 3. j...

2017-11-29 18:11:58 246 0

原创 多渠道打包方法简介

渠道包就是要在安装包中添加渠道信息,也就是channel,对应不同的渠道,例如:小米市场、360市场、应用宝市场等 我们要在安装包中添加不同的标识,应用在请求网络的时候携带渠道信息,方便后台做运营统计(这就是添加渠道信息的用处)。 实现多渠道打包的原理: 一般来讲,这个渠道的标识会放在And...

2017-11-27 15:06:05 5546 0

原创 Android 签名打包出现的错误的解决方法以及代码中获取应用签名信息方法

现象: Android导出APK包时出现,编译调试时不会出现。 错误信息:Error:(16) Error: "baidutieba_client_inavailable" is not translated in "en" (English) [Mis...

2017-11-27 11:07:49 1761 0

原创 联网更新版本功能的流程说明

版本更新的流程逻辑图 1、判断手机是否可以联网 /** * 判断手机是否联网 * ConnectivityManager */ private boolean isConnected() { boolean connected = ...

2017-11-24 18:12:30 245 0

原创 分享给好友功能的实现

1.常用的分享功能实现的框架 http://mob.com/ https://www.umeng.com/2.sharesdk说明: ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会...

2017-11-24 14:27:53 8660 1

原创 登录和退出登录的操作逻辑

登录功能的操作逻辑步骤如下:可以分为五个步骤来实现。 1、进入页面先判断用户是否已经登录 private void isLogin() { //查看本地是否有用户的登录信息 SharedPreferences sp = this.getActivity()....

2017-11-22 14:41:24 24650 0

原创 更换头像的逻辑代码,两个功能,一个是从图库选择,一个是打开相机自己拍照

效果: public void changeIcon(View view){ String[] items = new String[]{"图库","相机"}; new AlertDialog.Builder(this) ...

2017-11-21 18:19:10 789 0

原创 压缩并设置圆形头像

效果图: 1.设置布局属性:<ImageView android:scaleType="fitXY"/>2.得到指定圆形的Bitmap对象public static Bitmap circleBitmap(Bitmap source) {int width = s...

2017-11-21 15:18:28 226 0

原创 Android的shape功能和selector功能的代码中定义的简单使用及替换

使用代码定义的shape资源类 public static Drawable getDrawable(int rgb, int radius){ GradientDrawable gradientDrawable = new GradientDrawable(); ...

2017-11-17 10:44:55 166 0

原创 流式布局控件的编写

import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup;import java.util.ArrayList;...

2017-11-16 17:11:15 244 0

原创 APP安装完成打开再返回桌面打开启动两次应用的问题

bug重现步骤: 一般我们从应用市场下载App后,安装完成了点击打开,启动APP,再按Home键切换到后台,再找到APP的图标,点击启动。这时候APP不是打开之前切换到后台的APP,而是重新打开了一个任务。所以这时候退出APP,需要返回两次才能完全退出。 分析问题: 首先我们要知道,一个ta...

2017-11-16 15:12:11 574 0

原创 App前后台切换的监听

APP是否在前台运行的监听。 方案: 实现的大体思路:在Activity生命周期中的onPause()中判断是否进入后台,如果进入后台你就可以做一些你想要做的操作,Activity生命周期中的OnResume()方法中判断App是否进入前台,如果进入前台就做自己想要的操作。 具体实现: ...

2017-11-16 14:27:09 406 0

原创 随机飞入效果视图控件

效果图: 随机飞入效果ui视图控件文件夹randomLayout,文件中包含四个文件类 AnimationUtil.class、RandomLayout.class、ShakeListener.class、StellarMap.class四个文件类。 AnimationUtil.class ...

2017-11-15 15:01:33 216 0

原创 BaseAdapter的封装

ListView的使用,必须有一个装配数据的适配器。所以BaseAdapter的封装就显得尤为重要。 适配器的作用:将具体的集合数据装配到具体的一个item layout中 问题一:数据类型是不确定的。 问题二:item layout的布局是不确定的 问题三:将集合...

2017-11-15 10:19:58 114 0

原创 androidstudio3.0使用butterknife报错解决

Android studio3.0稳定版本发布了,本人总喜欢最新的东西,所以一出稳定版就更新了,但是问题出现了,之前可以运行的项目报错了。Annotation processors must be explicitly declared now. The following dependenci...

2017-11-14 15:17:33 380 0

原创 水平跑马灯

先上效果图: 实现水平跑马灯有两种方式: 方式一、在布局中编辑一个TextView控件 <TextView android:id="@+id/tv_product_title" android:layout_width="ma...

2017-11-10 17:33:37 110 0

原创 带清除按键的EditText,带晃动动画

import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable; import android.text.Editable; impo...

2017-11-10 16:06:39 163 0

原创 自定义LoadingPage实现网络请求显示的四种情况的封装

我们在网络请求数据的时候,通常有四种情况: 1、正在加载 2、加载失败 3、加载成功,但是没有数据 4、加载成功,同时返回数据 这时候需要我们根据这四种情况显示不同的页面视图。 这里我们可以自定义一个LoadingPage类来实现这四种情况的切换。 一、新建一个LoadingP...

2017-11-09 16:07:30 567 1

原创 自定义进度条视图

自定义一个进度条视图,先上效果图如下: 分析视图的实现步骤: 根据看到的视图,我们可以把视图分为三个部分,圆环,圆弧,文本 //1、绘制圆环 //获取圆心坐标 int cx = width/2; int cy = width/2; ...

2017-11-08 16:55:33 133 0

原创 项目开发中,结构设计的常用工具类

ActivityManager.class用于管理APP的Activity的管理类package com.willkong.p2pclient.common;import android.app.Activity;import java.util.Stack;/** * 作用:统一应用程序中所有...

2017-10-31 17:44:47 342 0

原创 Android设置全屏显示方法

方式一:动态编码的方式: // 去掉窗口标题 requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏顶部的状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); s...

2017-10-31 16:42:10 181 0

原创 连续点击两次退出当前程序

简单的记录项目中使用的一个小功能 :点击返回按钮两次退出当前程序 //重写onKeyup(),实现连续两次点击方可退出当前程序 private boolean flag = true; private static final int WHAT_RESET_BACK = 1...

2017-10-31 16:10:59 447 0

原创 底部导航栏

1、新建activity.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/...

2017-10-31 15:47:38 143 0

原创 百度地图定位开发流程

表达能力真的有点挫,所以都没有习惯写博客,但是,学习了一个知识点,也要记录一下,方便下次调用的时候,可以快速的找到。 这次就是记录一下百度地图的引用流程。主要是定位这个功能在我们平时的项目中用的比较多,所以这里就着重讲一下,百度地图定位功能的使用。 一、打开百度地图的官方网站http://lb...

2017-10-31 14:27:53 2837 1

原创 RecyclerView使用介绍

RecyclerView 是Android L版本中新添加的一个用来取代ListView、GridView的SDK,它的灵活性与可替代性比listview更好。接下来通过一系列的文章讲解如何使用RecyclerView,彻底抛弃ListView.了解RecyclerView架构,可以高度的解耦,异...

2017-07-20 17:03:54 169 0

原创 Android 自定义 DialogFragment 宽度问题

package com.eno.pages.trade;import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; import android.content...

2017-05-11 20:09:40 308 1

原创 点击或滑动view带动画的下滑展开显示隐藏内容的控件

需求:自定义一个控件,包含的子控件中有一个视图需要点击或滑动的时候平缓的显示或隐藏。 实现:我们只需要使该视图是跟随动画平缓的显示和隐藏,就不会出现不衔接的现象,所以,我们只需要在onMeasure中得到隐藏内容的高度,然后点击这个view的时候对隐藏的view startAnimation,让...

2017-05-09 10:56:39 454 0

原创 Android处理滑动与点击事件的冲突

需求:一个ViewGroup中有多个控件,在该控件布局中既可以点击也可以上下左右滑动,这样就出现了点击事件和触摸事件的冲突。我们需要当用户点击的时候响应点击事件,如果是滑动就响应触摸事件。 实现:自定义父控件,在onInterceptTouchEvent方法中判断是否点击还是滑动,如果判断是点击...

2017-05-09 10:25:31 6854 0

原创 android studio如何将多个module统一放在一个目录下

1.root工程下新建extra文件夹 2.将一个module拖进extra文件夹 3.在setting.gradle中将原有的:moduleName改为:extra:moduleName,同步一下。完成。

2017-03-22 23:59:10 824 0

转载 Android退出应用最优雅的方式

我们先来看看几种常见的退出方法(不优雅的方式) 一、容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activityimport java.util.ArrayList; import java.util.List; import android....

2017-03-22 09:31:48 506 0

原创 股票数量价格加减控件

做股票软件的都应该知道,交易买卖的页面都有用到一个控件就是数量和价格的加减,根据在项目开发中的经验,我把加减控件进行了封装。 自定义组合控件 一般的实现步骤如下: 一、创建要进行组合的布局trade_number_add_sub_view.xml<?xml version="...

2017-03-22 09:21:52 890 0

原创 我的开发常用工具类方法

总结一下开发中经常用到的工具方法。/** * 屏蔽EditText的复制粘贴功能 * @param editText * @param isCopyAndPasteAble */ public static void copyAndPasteAble...

2017-03-21 13:31:05 197 0

转载 论读Android源码的重要性——Hook技术之View点击劫持

昨天有好几个小伙伴简信问我,View.onClick怎么hook?回想前几个月前,公司的项目在百度手机助手上线,在快速点击的时候会跳转两次Activity或者两个Dialog等等,为了能够顺利通过百度的测试,老大叫我将所有onClick全部要优化处理,避免用户快速多次点击,于是乎,我写了下面的代码...

2017-03-20 09:37:57 1474 2

原创 TabLayout实现底部顶部导航栏

准备步骤: 1、在build.gradle文件下依赖库 compile ‘com.android.support:design:24.2.1’ 效果图: 实现步骤 1、编写布局文件activity_main.xml<?xml version="1.0" en...

2017-03-13 10:25:10 379 0

原创 RecyclerView实现广告轮播图

之前做的轮播图,对于十几个图片什么的能够满足,但是万一有几千张,几万张就容易造成内存泄露,使用RecyclerView做的轮播,可以利用它自身的复用机制,比较节省内存。所以这种方式感觉效果更好。 准备:build.gradle添加 compile ‘com.github.bumptech.gl...

2017-03-10 16:06:27 3294 1

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