自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

panghaha12138的博客

最痛苦的事,不是失败,是我本可以

  • 博客(78)
  • 论坛 (1)

原创 Android Jetpack框架之LiveData与ViewModel分析与使用

Android Jetpack框架之LiveData与ViewModel分析与使用1、前言Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示官方对应 Architecture 的说明:Android architecture components are a ...

2019-04-25 10:00:16 368

原创 Android 8.0 PictureInPicture 画中画模式分析与使用

之前的直播业务中有退出直播后显示一个小窗口继续播放视频直播需求,当时是用的windowManger做的windowManger实现连接,今天来了解一下Android8.0后的画中画怎么实现,先看效果图gif4.gif 先看一下谷歌文档的介绍https://developer.android.google.cn/guide/topics/ui/multi-windowhttps:...

2019-02-24 19:21:54 1078

原创 仿抖音点赞爱心特效

先看效果图gif2.gif gif1.gif附上github demo地址 最近项目没那么忙了,闲下来,看了一下抖音的点赞特效还是挺炫酷的,于是决定看看是怎么实现的。其实就是一个图片ImageView进行平移,缩放,不透明度组合动画一起播放达到这个效果,原理很简单上代码import android.animation.Animatorimport and...

2018-12-03 15:54:41 4413 1

原创 仿抖音上下滑动播放视频

先看效果图 gif2.gif gif1.gif gif3.gif这里demo下载地址讲下大概思路,使用recycleview配合自定义LinearLayoutManager来实现这个功能,这里着重说下自定义LinearLayoutManager的实现可以看到每当下一个item滑入屏幕时,上面的item会继续播放视频,而滑入的item只有当全部进入屏幕...

2018-12-03 15:52:18 11707 1

原创 视频直播,点播,悬浮小窗口播放demo (使用阿里云sdk)

使用阿里云直播sdk demo ,支持直播,点播 视频直播与悬浮窗小窗口无缝衔接切换(一般拉流格式 rtmp m3u8等)直播点播提示,监听,各种状态返回以及各种提示视频播放基础库 支持全屏,快进,手势基础操作全局视频小窗口 权限判断,高斯模糊背景(可以加深颜色)飘心效果,还有列表单例播放视频 ,列表全屏视频,视频支持手势,进度,亮度,声音demo下载地址效果图:0...

2018-12-03 15:50:13 896

原创 Android 软键盘之 windowSoftInputMode 分析

Android 软键盘弹出可能会遮挡住界面上的 EditText 或者是其他控件,有时还会出现莫名其妙的问题,解决软键盘问题,先从 windowSoftInputMode 入手。windowSoftInputMode 常用的有 adjustPan,adjustResize,adjustNothing 等。本文也只研究这几个属性,其他可自行百度。为 Activity 指定 windowSoftI...

2018-08-29 10:19:43 106

原创 Android 图片高斯模糊解决方案

近年来,图片高斯模糊备受设计师的青睐,在各大知名APP中,如微信、手机QQ、网易云音乐等等都有对背景高斯图模糊的设计,在Adnroid 中,现在常用的图片高斯模糊技术有三种:RenderScript 、fastBlur、对RenderScript和fastBlur的优化,接下来分别分析各自的优缺点和在项目中该使用哪个解决方案。先上一张效果图:image1,RenderScriptR...

2018-08-29 10:18:08 3623

原创 RecyclerView中嵌套RecyclerView导致页面会向上偏移

RecyclerView中嵌套RecyclerView或其他可滑动布局抢占焦点的问题的解决办法下面先看一下问题所导致的现象:20170812171210726.gif可以看到,当我们第一次打开app的时候,第一个item是没有完整显示的,给人的感觉是向上有了一段位置的偏移,这个问题就是RecyclerView中嵌套RecyclerView所导致的抢占焦点的问题。具体的解决办法就...

2018-08-29 10:16:23 864

原创 仿斗鱼BiliBili 全局悬浮窗直播小窗口 实现详解

最近业务需求需要我们直播返回或者退出直播间时,开一个小窗口在全局继续直播视频,先看效果图。 更新了一下 现在有demo下载地址了https://www.jianshu.com/p/a762893c670fdemo下载地址调研了一下当下主流直播平台,斗鱼BiLiBiLi等app,都是用windowManger 做的即通过windowManger add一个全局的view,可以申请...

2018-08-07 14:13:25 11441

原创 RecyclerView的滚动事件OnScrollListener解析

(1)滚动事件分类列表的滚动一般分为两种: 1.手指按下 -> 手指拖拽列表移动 -> 手指停止拖拽 -> 抬起手指 2.手指按下 -> 手指快速拖拽后抬起手指 -> 列表继续滚动 -> 停止滚动上面的过程的状态变化如下:1.静止 -> 被迫拖拽移动 -> 静止2.静止 -> 被迫拖拽移动 -> 自己滚动 -&...

2018-08-07 12:41:00 828

原创 RecyclerView跳转到指定位置

自从android5.0推出RecyclerView以后,RecyclerView越来越受广大程序员的热爱了!大家都知道RecyclerView的出现目的是为了替代listview和ScrollView在列表方面的使用!那么listview和ScrollView的所有功能和方法都应该有的!但是RecyclerView的很多方法,不是封装在RecyclerView中的,当我们在RecyclerV...

2018-08-07 12:36:42 3248

原创 Android微信支付流程及返回码 -1 的坑

之前做微信支付的时候,直接是以库形式引入项目的,虽然一直觉得微信支付的开发文档不太理想,但是印象中也没有遇到什么大坑。今天项目组的一个小伙伴突然告诉我微信支付一直失败,根本调不起来支付页面,onResp() 中的返回码一直是-1,而且他好像已经搞了好几个小时了。于是我pull了一下项目代码开始排查问题。最终发现问题有两个:微信开放平台上传的签名问题 Manifest文件中WXPayEnt...

2018-07-25 18:42:38 3053

原创 直播小弹窗,WindowManager 实现悬浮窗 详解

一:对于想直接看效果的,可以看看我的demo app.链接:http://sj.qq.com/myapp/detail.htm?apkName=com.inno.backdot源码:https://github.com/didikee/BackDot二: Android 6.0 关于SYSTEM_ALERT_WINDOW权限申明直接报错// 设置window type ...

2018-07-25 18:41:07 1007

原创 Android PopupWindow 7.0之后出现的问题

缘由之前老项目一直有个问题,就是弹窗会顶在屏幕最上面,一直以为是特殊机型适配的问题,一拖再拖没有解决,后来测试实在忍不了,上网上查一查,发现这个bug出现好久了,是安卓7.0之后源码发生改变导致的兼容性现象popuwindow设置 showAsDropDown(view)并没有在某个view的下面popupWindow设置了居中或者底部对齐,但是在7.0机器是跑到顶部。

2018-01-11 17:39:12 370

原创 android去掉超文本、超链接的下划线——终极解决方案

在开发中,有时需要对文本之中的超链接或者类似于微博#话题#这样特殊文本进行过滤,包括特殊字符的点击事件,以及颜色处理,比如这样超文本.jpg这样的需求可以用原生的Linkify类来处理,下面是一个用来过滤http://或者https的链接写法,通过我们自己写的正则表达式来过滤超文本,然后原生的Linkify会给符合我们定义的规则(例如微博#话题#

2018-01-11 17:33:50 4063 1

原创 判断Android手机(OPPO手机)是否有录音权限兼容6.0以下

项目中遇到老的OPPO手机5.1的版本,出现明明拒绝了录音权限,但是回调依然是true,自从6.0之后出了运行时权限,获取权限的方式就变得统一化了,首先在清单文件配置需要的权限,然后使用时拍照或者录音去调用//6.0以上动态获取权限 if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission

2018-01-11 17:31:59 4105 3

原创 WebView的那些坑

转自 http://www.jianshu.com/p/3ad7c39858ec不知不觉,Hybird App已经成了目前比较主流的一种开发方式。对于用户体验要求较高或者与硬件交互较多的功能我们一般都会采用Native原生的方式来实现。而用户交互少,偏展示类,活动类的功能我们则通常采用H5的方式来实现,例如新闻类的app,详情展示页一般就是H5的页面

2017-12-20 21:47:56 528

原创 EditText 关于输入限制以及字数限制的问题

EditText 关于输入限制以及字数限制的问题最近遇到个奇葩需求,文本输入框输入内容时,只能输入中文,英文和数字,而且还要对输入字数做限制,中文最多5个,英文数字最多10个,单单一种类型是比较好控制的,但是要是中文英文混合可就不好判断了 下面是解决方案: editText.addTextChangedListener(new TextWatcher() {

2017-09-21 11:10:03 1210

原创 自定义toolbar布局不居中(已解决)

在自定义toolbar的布局时,如果内部使用的布局继承自ViewGroup(比如LinearLayout、RelativeLayout等),则会在左侧出现一块空白,导致整个toolabr布局右移。一行 代码搞定右移的问题 app:contentInsetStart="0dp"代码如下:<android.support.v7.widget.Toolbar

2017-09-21 10:53:04 740

原创 使用Volley 网络请求post,json作为参数

因为接手老项目本来已经用习惯okhttp那种简单的网络请求写法,但是现在项目用的是以前的volley,所以记录一下下面是一个简单的post请求,重点是不是用builder拼的参数,而且传一个josn串// 参数格式 json {"key":"中国移动","num":10}public static void SearchStockSuggest(String key,int num,final UI

2017-09-05 09:15:08 488

原创 Android发展史

文章整理了Android 0.x,android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x相关更新的内容文章主要收集的是Android发展信息和各版本特性,本文内容比较平淡,较少涉及技术的描述,Android各版本技术更新的文章请点击这里1 什么是Android?1 Android名字与Logo的由来[1]And

2017-08-23 22:55:36 1378

原创 fragment嵌套viewpager viewpager嵌套fragment 的bug

项目需要的框架是上面是可滑动隐藏的头布局,下面是滑动切换的viewpager之前填充viewpager 用的adapter是 package com.example.panghaha12138.testapp;import android.support.v4.view.PagerAdapter;import android.view.View;import android.v

2017-08-08 10:11:46 385

原创 Git常用命令大全

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。Git常用操作命令:1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add

2017-07-28 18:01:38 320

原创 Android Studio 开发错误 Installation failed with message INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

新的项目第一次编译运行就出现了如下的错误 编译过了,但是安装不上去 很崩溃 再三检查了手机usb调试和安装,没有问题,之后问了群里大佬 得到了一些解答方案1.Removed existing application (if it is already installed )2.Removed share user ID from android manifest3.Bulid the a

2017-07-27 23:04:32 2457

原创 高仿网易云音乐二

上一篇播放主要的几个类也介绍的差不多了 下面就是一些我收集的好玩的UI效果朋友页面仿探探package com.panghaha.it.mymusicplayerdemo.UI;import android.content.Context;import android.os.Bundle;import android.support.annotation.Nullable;import an

2017-07-21 09:22:50 452

原创 高仿网易云音乐一(可扫描本地音乐播放)

最近闲下来做了个仿网易云音乐的音乐播放器 效果图: 项目下载地址https://github.com/PangHaHa12138/MusicPlayerdemo闪屏 扫描本地音乐播放 仿探探 仿ofo 仿摩拜 小鱼儿自带 68首 老罗的相声节目(超搞笑) 闪屏//放大图片 public void animateImage() { ObjectAnim

2017-07-21 09:00:23 1048

转载 程序员如何优雅的挣零花钱?

程序员如何优雅的挣零花钱? 虽然程序员有女朋友的不多(误),但是开销往往都不小。 VPS、域名、Mac上那一堆的收费软件、还有Apple每年更新的那些设备,经常都是肾不够用的节奏。 幸好作为程序员,我们有更多挣钱的姿势。 有同学该嚷了:不就是做私单嘛。 对,但是也不太对。做私单的确是一个简单直接方式,但在我看来,私单的投入产出比很差,并不是最优的。 但既然提到了,就先说说吧。私单最理想的单子还

2017-07-17 09:02:25 367

原创 Android酷炫实用的开源框架(UI框架)

Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架、DB框架)。 1.Side-Menu.Android分类侧滑菜单,Yalantis 出品。项目地址:https://

2017-07-11 11:33:42 354

原创 报错 Error:Timeout waiting to lock cp_proj class cache for build file 'D:\androidw\TuYeLiangPin\app\b

Error:Timeout waiting to lock cp_proj class cache for build file 'D:\androidw\TuYeLiangPin\app\build.gradle' (C:\Users\Administrator\.gradle\caches\2.8\scripts\build_bzikbbp607i5rz5fw1qj7x5l\cp_proj).

2017-07-10 20:18:32 550

原创 音乐本地扫描工具类,返回一个集合

一个简单的扫描本地音乐工具类 返回一个集合package com.panghaha.it.mymusicplayerdemo;/*** * ━━━━ Code is far away from ━━━━━━ *    ()     () *    ( )    ( ) *    ( )    ( ) *   ┏┛┻━━━┛┻┓ *   ┃   ━   ┃ *   ┃ 

2017-07-05 17:14:54 397 2

原创 一个简易美观的Splash闪屏动画

效果图:1499242181976.gif1499242441467.gif主要原理:就是利用nineold提供的动画帮助类,做一个放大效果,子线程或者hanlder发消息延时两秒,然后再执行放大效果对图片当然需要添加依赖compile 'com.nineoldandroids:library:2.4.0'布局:RelativeL

2017-07-05 16:38:11 807

原创 recycleview+NestedScrollView+viewpager 解决滑动问题以及recycleview的使用技巧

效果图:上面是轮播广告,下面是recycleview瀑布流1499238222694.gif首先说一下布局.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://sch

2017-07-05 15:48:56 956

原创 属性动画和帧动画的使用

最近在做一个小播放器用到一些简单动画效果,记录一下1499226385177.gif效果图 一个旋转的圆形图片,右上角是帧动画直接上代码旋转圆形图片就是用原生的旋转属性动画RotateAnimation //自定义圆形图片 xz = (CircleImageView) mview.findViewById(R.id.xz);

2017-07-05 12:30:07 304

转载 给初学者的RxJava2.0教程(二)

本文转载自http://www.jianshu.com/p/8818b98c44e2前言上一节教程讲解了最基本的RxJava2的使用, 在本节中, 我们将学习RxJava强大的线程控制. 正题 还是以之前的例子, 两根水管: 正常情况下, 上游和下游是工作在同一个线程中的, 也就是说上游在哪个线程发事件, 下游就在哪个线程接收事件. 怎么去理解呢, 以Android为例, 一个Activit

2017-06-27 16:11:15 250

转载 给初学者的RxJava2.0教程(一)

本文转自 http://www.jianshu.com/p/464fa025229e前言上个月RxJava2正式版发布了,但目前国内的资料还比较少,以前使用过RxJava1只需要看看更新文档就知道怎么使用了,但还有一些以前没用过RxJava的朋友可能就不知道怎么办了,不知道该看RxJava1还是直接跳到RxJava2。所以写下这个教程, 帮助那些没有用过RxJava的朋友入门。注:如果你觉得写得不

2017-06-27 15:33:08 358

原创 双重检查加锁

* 双重检查加锁: * “双重检查加锁“的方式可以既实现线程安全,又能够使性能不受到很大的影响。 * 那么什么是”双重检查加锁“机制呢? *        所谓双重检查加锁机制,指的是:并不是每次进入getInstance方法都需要同步, * 而是先不同步,进入方法过后,先检查实例是否存在,如果不存在才进入下面的同步块, * 这是第一重检查。进入同步块后,再次检查实例是否存在,

2017-06-27 14:47:03 247

原创 用Git将本地项目传到Github

之前写过一篇如何用ide Android studio 关联git 传项目到github 相当的简单传送门:http://blog.csdn.net/panghaha12138/article/details/72847676今天记录一下如何不用ide 手动用git 远程传代码到github1.你首先得有个git 吧首先需要下载windows版的Git 官网下载地址

2017-06-22 12:41:51 287

原创 安卓开发-拍照或相册选择头像和运行时动态获取权限

项目中都会用到头像设置,所以记录一下效果图:在android 6.0推出了运行时权限,我们获取用户手机权限就没那么方便了,先说说运行时权限:Permission,运行时权限授权权限*如果设备运行的是Android 6(API Level 23)或更高,和应用程序的targetSdkVersion是23或更高,应用程序要求的权限由用户在运行时。用户可以在任

2017-06-20 18:56:24 1876 1

转载 用Glide-图片的压缩-图片压缩原理

前言:这一节里面我们将介绍Glide如何对图片进行压缩,这一点在加载图片较多或者加载的图片像素很高的程序里面至关重要Glide 系列目录1.Glide-入门教程2.Glide-占位图以及加载动画3.Glide-加载本地图片4.Glide-加载Gif5.Glide-绑定生命周期6.Glide-内存缓存与磁盘缓存7.Glide-通过Modules定制Glide8.Glide-自

2017-06-20 15:23:42 9459

原创 安卓开发-高仿ios时间选择控件timepicker

在开发中如果有地址或者日期选择等就会涉及到时间或者条件选择器,大家都会想到仿ios的三级联动的效果,用wheelview实现,其实安卓原生自带了时间和日期选择器可能是效果来说太粗犷了,所以很多产品效果图都是清一色的ios那种效果,ok,废话说完了上图demo地址:https://github.com/PangHaHa12138/TimePackdemo1,安卓原生的时间和日期选择器

2017-06-20 14:38:26 14040 5

空空如也

Expandablelistview的子item的点击事件为什么不响应

发表于 2017-04-10 最后回复 2017-04-10

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