自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (2)
  • 收藏
  • 关注

原创 android自定义view底部可上拉页面

最近有需求,要写一个隐藏在底部,但是支持上下拉的菜单框,于是自己写了一个模型,刚好可以复习一下自定义view、事件分发及属性动画的知识。废话不多说,先上效果图:界面很简单,但是有几个难点(大神请略过):触摸区域处理;子控件手势拦截;配合属性动画的使用; 先看一下布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andr

2017-04-23 21:23:40 9035 6

原创 实现注入view,简单案例剖析butterknife原理

ButterKnife注入框架我相信大家都用过至少听过吧,它的出现简直是android开发人员的一大福利,彻底解放了无止境的findViewById,而是通过优雅的注解来实现view的赋值,如果你真没听过那我在这里只能贴上一张github的截图,自己好好反思吧~butterKnife地址1w5的star你还有什么不学的理由!!!好的,今天我们不说butterfnife怎么用,而是仿照框架中的实现原理

2017-04-02 19:51:53 1020

原创 Webview与js交互漏洞及解决方法(有注释代码)

前两天去Tencent面试,被面试官问到这个问题,答得不是很好,于是回来总结一下,并提供了解决方法与大家分享。 在Android中,netive与js交互已经不是什么新鲜事。大多数人都知道WebView存在一个漏洞,大致是因为js可以通过webview的window对象获得Class然后通过遍历所有的方法,找到runtime方法,边,虽然该漏洞已经在Android 4.2上修复了,即使用@Jav

2017-03-14 10:48:17 1274

原创 android apk瘦身实战

瘦身的目的 从目的导向来看,我们是不会无缘无故去做一件事情的,那我们对应用瘦身的目的是为了什么?答案是:提高下载转化率。什么是下载转化率?举个栗子:你的应用大小是 18MB ,有100个潜在用户想要去下载尝试使用,结果有20个用户嫌弃安装包太大直接扬长而去,有20个用户在等待下载的过程中取消下载,最终只有60个用户真正下载安装,那么应用的下载转化率就是 60/100 = 60% 。 简单的

2017-03-02 14:15:15 372

原创 AppBarLayout、CollapsingToolBarLayout、ToolBar组合实现狂拽屌炸天头部效果

以前app的头部非常呆板,MeterialDesign出现之后,头部栏变的丰富起来,今天介绍几种常用的酷炫效果,实用为主。效果一:往上滑动页面,头部消失;往下滑动,头部出现。xml文件:<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http:

2017-01-21 01:56:26 2566

原创 可拖拽排序的GridView(高仿今日头条编辑频道效果)

最近在一直在用今日头条,发现在我的频道编辑时的拖拽排序体验非常有意思,这种拖拽功能其实在支付宝等app上也频繁使用,于是打算自己研究一下,网上虽然有很多类似于此类功能的博客,但实现的都不是特别完美,效果总有瑕疵,今天我分享一个完美体验版,大家用了就知道!老规矩,先上效果: 准备工作 要想实现这个效果,首先你要了解这几个方面的知识,有欠缺的同学赶紧先补一下: * 使用WindowM

2017-01-15 11:55:00 2962

原创 获取activity的根布局

最近有些同学问我为什么activity有setContentView( int id ),为什么没有getContentView()这个方法呢?这个我真没办法回答,但是我能告诉你怎么去拿activity布局文件中的根布局。android其实有一个getRootView()的方法,但是通常拿不到id,这是为什么呢?这是因为拿到的getRootView 是在ContentView外的DecorView。

2017-01-12 19:35:02 19368 2

原创 SlidingMenu源码分析及拓展:监听拉出菜单时的滚动事件,将主页变暗

这些效果以前都写过,但是之前没有积累的习惯,导致每次开始一个新项目时又要重新去翻阅资料、api,挺浪费时间的,所以打算记录一下,养成好习惯。 SlidingMenu与DrawerLayout: SlidingMenu是一个非常火的侧拉菜单开源组件,基本上99%的项目都要用上他,Material Design之后出了一个DrawerLayout抽屉组件,也非常好用,两者对比了一下,Dra

2017-01-12 16:55:58 1224

原创 Android底部导航栏组件:BottomNavigationBar

Google终于推出了自己风格的底部导航栏,对于android开发人员来说是一个福音。废话不多说,先来看一下效果: 怎么样,是不是还行,其实使用起来也非常简单,下面跟着我来做吧!添加依赖: compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.1'布局文件: <com.ashokvarma.bottomnavigation.Bo

2017-01-11 11:41:03 1979

转载 android高级知识汇总

本文来自于清华(潇涧)的Java总结,已得到其本人允许转载Android公共技术:公共技术点之 Android 动画基础公共技术点之 Java 动态代理公共技术点之依赖注入公共技术点之 View 事件传递公共技术点之 View 绘制流程1.Android的Framework和Android apk的打包过程底层的Binder驱动,IPC的核心,SGL 2D绘图,OpenGL 3D绘图2.多线程Asy

2017-01-03 14:50:27 5435

原创 JAVA数据结构-集合篇

从事android工作这么多年,越来越发现java基本知识的重要性,数据结构是编程的核心,所以我打算重新回顾总结一下基础。 相信很多刚入门的android开发同学甚至工作几年的程序员可能一直一来都在用ArrayList和HashMap这两种集合类,只是用时爽快,但是有没有同学去思考过为什么我们一直在用这两种集合类,他们底层是如何实现的,以及其他的集合类又有什么优缺点呢?我们开始揭开java集合

2016-12-31 10:26:38 377

原创 androidStudio给工程添加依赖模块

前言:以前用ecplise可以直接添加依赖模块,但是到了AS年代,很多同学在使用AS的时候看到一些比较好的第三方包,却不知道如何引入自己工程,或者想让自己的项目独立化却不知如何下手,今天就分享一下在AS上添加依赖模块。//当然as非常的强大,你当然可以用这样的方式引入github上的开源包:dependencies { compile 'com.github.bumptech.glide

2016-12-28 19:38:07 2220

原创 android常用的AES加解密

/** * 加密 */ public static String aesEncrypt(String encrypted, String keyWord) throws Exception { String encryptStr = null; try { SecretKeySpec key = new Secret

2016-12-28 09:38:51 583

原创 ButterKnife 8.1的配置与使用

ButtonKnife现在已经更新到了8以上,在用法和配置上发生了一些变化,在这里总结一下,供大家使用: 在 app -> build.gradle添加:apply plugin: 'com.android.application' //加这句apply plugin: 'com.neenbedankt.android-apt'android {}dependencies { co

2016-12-13 16:13:57 352

原创 Android创建桌面快捷方式

以前一直以为手机上的每一个图标都是一个单独的app,最近在做一个桌面创建快捷的功能,觉得挺有意思的,跟大家分享一下。 功能比较简单,直接贴代码:首先开通权限: <!--创建快捷方式权限--> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>然后在点击快捷方式之后想要打开的acti

2016-12-11 21:20:43 1321

原创 Android获取MAC地址大全

今天帮同学们梳理一下mac、wifi的工具类,持续更新~/** * Created by caoyujie on 16/12/2. * Mac地址工具类 */public class MacAddressUtils { /** * 获取当前连接的wifi的mac地址 */ public static String getWifiMacAddress(Cont

2016-12-02 18:08:33 858

原创 android沉浸式状态栏

这篇为小伙伴们介绍时下非常流行的沉浸式布局,虽然有关沉浸式状态的资料网上已经有很多,但是真正自己开发起来却碰到很多坑。好了,废话少说,先上图: 是不是觉得很炫,android顶部默认的黑色状态栏变成了布局的一部分,下面我们来看他们是怎么实现的吧!首先我们要摆正一个正确的认识,要想保证沉浸式状态栏的体验效果,我推荐只兼容4.4以上的机型: 全屏模式: //支持4.4以上

2016-11-05 00:11:17 452

原创 adb进行android 调试(mac)

adb是androidsdk中自带的一个工具,今天介绍几个对于android开发者来说比较常用的功能: -查看设备 -安装、卸载apk -打印log -重启设备一、配置adb环境变量要想能够在mac终端上执行adb命令首先配置adb环境变量,这里我分享一个配置流程,亲测可用:1、找到androidsdk的路径,adb工具在sdk下的platform-tool下,

2016-10-29 12:04:20 872

原创 使用Build Variants控制应用的多配置

使用Build Variants控制应用的多配置在app项目的开发中经常会碰到测试环境、beta环境、正式环境等多环境的平凡切换,eclepse年代我们都是通过注释代码的方法来实现,这样的操作不仅非常麻烦,而且不容易区分环境,现在AS提供了BuildVariants(编译控制器)能够十分方便的解决这一难题,下面我们一起来学习一下吧:了解app目录下的build.gradle build.grad

2016-10-23 15:19:20 6193

android自定义view底部可上拉页面

android自定义view底部可上拉页面

2017-05-12

android自定义view底部可上拉框

android自定义view底部可上拉框

2017-04-23

空空如也

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

TA关注的人

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