自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wangwo1991的博客

QQ:970068315

  • 博客(82)
  • 资源 (33)
  • 收藏
  • 关注

原创 采用aar方式将react-native集成到已有安卓APP

关于react-native和android的开发环境搭建、环境变量配置等可以查看[官方文档]。

2023-02-20 14:01:14 1645 10

原创 webpack打包使用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-05 18:51:34 391

原创 装饰设计模式——RecyclerView添加头部和底部

装饰设计模式也称为包装设计模式,用来动态的扩展对象的功能,也是继承关系的一种替代方案之一,也就是说在不是用继承的方式下,采用装饰设计模式可以扩展一个对象的功能,可以是一个对象变得越来越强大。源码中就有很多地方用到了装饰设计模式,IO流、ContextCompat、ListView等,ListView的添加头部和底部就是采用装饰设计模式来实现的,而RecyclerView没有添加头部和底部,其实Li...

2019-01-12 22:10:35 606

原创 工厂设计模式——数据的存储

进入公司刚开始做项目时,android只有自己一个开发人员,自己也是第一次编程做项目,在登陆模块用户登陆成功后,需要将用户的账号和密码缓存在本地,会根据本地的缓存自动登陆;当时脑袋一过想到的就是用SharedPreferences来缓存数据;//缓存用户名和密码SharedPreferences userSharedPreferences = getSharedPreferences("u...

2019-01-12 17:29:20 330

原创 Builder设计模式--NavigationBar的实现

在应用程序中肯定会有标题栏,一般就是左边一个返回,一个标题,右边一个图片或者文字,不过有时候也会碰到中间是搜索框的情况,实现方式也很多,自定view、include、直接在xml布局中通过findViewById写等方式;这里是采用Builder设计模式打造一个NavigationBar,不需要在xml布局中去写,在activity初始化标题或者控件的地方实例一个NavigationBar对象并设...

2019-01-11 20:12:48 237

原创 单例模式——activity的管理

在开发中很多时候会碰到从A activity跳转到B activity,当用户提交完数据后,要关闭B activity,同时也要关闭A activity,其实要实现该功能有很多种方式:使用EventBus、使用广播、activity启动模式等,这里的话是从用单例管理activity方式,刚好在整个应用中也需要对开启和finish的activity进行管理;public class AppAc...

2019-01-10 21:05:56 1782

原创 AOP面向切面编程--检测网络

在项目开发中有时候会碰到这样的需求,就是在没有网络的情况下,点击按钮不进行页面跳转或不执行正常的业务逻辑,其实京东和淘宝等不少app都是这样处理的,面对这样的需求,肯定会想到在用户点击该按钮的时候去做网络的检测,没有网络就提示用户并停止下面的执行,有网络就执行正常的业务逻辑;public void click(View view){ if(!CheckNetUtil.isNe...

2019-01-07 07:39:26 955

原创 PickerView--仿ios滚轮时间选择、城市选择效果

在项目开发中Android基本都是在跟随ios的风格,前段时间产品经理就要求按照ios的效果,做时间、城市选择效果,真要全部自己写还真有点蛋疼,所以在网上一搜,效果不少,其中PickerView用的人还是蛮多的,所以就决定用PickerView来实现;PickerView提供了:时间选择器和选项选择器——TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式。...

2018-12-16 15:19:11 4339

原创 仿qq记步效果及invalidate源码分析

public class MyStepView extends View{ //中间文字大小 private int MyStepTextSize=30; //圆环边框大小 private int MyStepWidth=20; //中间文字颜色 private int MyStepTextColor= Color.parseColor("#000...

2018-11-27 19:21:01 148

原创 自定义view onDraw 自定义TextView效果

public class MyTextView extends View { //字体颜色 private int MyTextColor = Color.parseColor("#000000"); //要绘制的文字 private String MyTextString = ""; //默认文字大小 private int MyTextSize...

2018-11-26 21:33:52 1141

原创 自定义view onMeasure android测量模式

在自定义view中多半都会去重写onMeasure方法,进行view的测量,测量出大小后,再在onDraw方法中进行绘制,下面是一段简易的自定义view的代码:public class MyTextView extends View { //在new一个MyTextView对象的时候会调用 public MyTextView(Context context) { ...

2018-11-25 14:32:14 963 1

原创 html表单控件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>表单</title></head><body><!--action处理用

2018-06-21 22:00:25 532

原创 html单元格的合并

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>表格结构介绍</title></head><body><table wi

2018-06-21 21:55:51 793

原创 AsyncTask、HandlerThread、IntentSerivce源码解析

在进行耗时操作时,一般new Thread().start();开启一个子线程,然后通过handler消息去更新ui(关于handler可以看这里:android Handler、Looper、Messsage、MessageQueue源码解析)或者利用AsyncTask进行耗时操作;public class MainActivity extends AppCompatActivity { ...

2018-05-06 13:05:36 190

原创 android Handler、Looper、Messsage、MessageQueue源码解析

Handler:发送和接收消息Looper:消息(循环)轮询器Message:消息池MessageQueue:消息队列。虽然名为队列,但事实上它的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息列表的先来看Handler,其实系统很多东西都是通过Handler消息来实现的,其中也包括activity的生命周期,应用程序的退出等;在ActivityThread类中的main方法中可以...

2018-05-05 11:50:02 286

原创 腾讯X5WebView+JsBridge交互及WebView加载进度条效果实现

最近在项目开发中有不少页面需要采用html的方式实现,自然而然就涉及到原生和js的交互问题,WebView也提供了addJavascriptInterface方法可以进行js的交互,实现也比较简单,由于需要交互的地方比较多,还是没有采用这种方式,使用了JsBridge第三方来实现,JsBridge用起来比较方便,可以主动给js发送消息,同时回调发送结果,也可以有js主动调用,同时回调调用结果等;J...

2018-04-23 15:33:41 7439

原创 android图片压缩

在项目开发中会碰到上传图片或者类似微信选择图片发送或者上传的效果,现在的手机拍照效果都不错,图片动不动就是几MB,直接上传或者发送肯定是不行的,就会涉及到图片的压缩,在发送或者上传之前先对图片进行压缩,然后再进行上传;针对图片压缩,android系统提供了质量压缩、尺寸压缩、采样率压缩等方法。原图大小(4.10MB)1、质量压缩/** * 质量压缩 * * @para...

2018-04-15 00:20:09 778 1

原创 android性能优化——内存泄漏

在项目初期阶段或者业务逻辑很简单的时候对于app性能之一块没有太多感觉,但是随着项目版本的迭代和项目业务逻辑越来越大,越来越复杂的时候,就会逐渐感觉到app性能的重要性,所以在项目初期阶段时,就要有app性能这一意识,也便于项目后期的版本迭代和业务扩展;这里所提到的性能优化问题是:内存泄漏。什么是内存泄漏?通俗一点就是内存没有在GC掌控之内;当一个对象已经不需要再使用了,本该被回收,而有另外一个正...

2018-03-25 11:48:20 330

原创 Builder模式打造通用Dialog效果

这是参照系统Dialog,采用Builder模式实现的一个万能dialog效果;参照系统dialog的方式,涉及到AlertDialog、DialogViewHelper、AlertController这三个类,AlertDialog类中主要提供了一些dialog样式、效果、布局等设置的方法,采用Builder的设计模式,在使用的时候可以采用链式调用;package com.dialogdemo....

2018-03-08 07:45:20 372

原创 简单实现电影院选座效果

这是一个简单的电影院选座效果,实现该效果大致分为三步:自定义view进行绘制;手势缩放效果的实现;手势触摸被选和未被选效果的实现;先来看第一步,效果的绘制;public class MoveSeatView extends View { private final boolean DBG = false; private Paint paint = new Paint(); ...

2018-03-07 08:24:53 35791 3

原创 RecyclerView实现条目拖拽,左滑、右滑移除效果

对于android开发者来说RecyclerView应该已经很熟悉了,项目中基本都是使用RecyclerView来实现列表效果,这里要实现的是RecyclerView的条目拖拽、左滑、右滑移除效果,这些效果都是在RecyclerView列表基础上来实现的,所以还是先简单的实现RecyclerView的列表效果;一开始肯定要引入依赖库:compile 'com.android.support:rec...

2018-03-06 07:53:48 2766

原创 仿qq消息拖拽效果

这是一个仿qq消息拖拽效果,View和拖拽实现了分离,TextView、Button、Imageview等都可以实现相应的拖拽效果;在触发的地方调用MessageBubbleView.attach(findViewById(R.id.text_view), new MessageBubbleView.BubbleDisappearListener() { @Override pub...

2018-03-05 07:39:51 495

原创 仿花束直播点赞效果

这是一个利用贝塞尔曲线实现的仿花束直播的点赞效果,实现该效果涉及到:1、Random随机数的使用;2、ObjectAnimator属性动画及插值器的使用;3、贝塞尔曲线的使用;/** * Created by Administrator on 2018/1/30. * 点赞的效果 */public class LoveLayout extends RelativeLayout { ...

2018-03-04 17:14:56 953

原创 属性动画—仿58加载效果

实现思路: 1、自定义view绘制圆、正方形、三角形; 2、将绘制好的view添加到布局容器中; 3、添加相应的动画效果; 自定义view,重写onMeasure()方法进行测量,重写onDraw()方法进行绘制;public class ShapeView extends View { private Shape mCurrentShape = Shape.Circle;

2018-01-29 07:50:10 260

原创 打造通用的下拉列表

这是一个通用的下拉列表效果,类型和价格展示的是一个textview,品牌和更多展示的是一个RecyclerView列表效果;这里是采用adapter设计模式实现的。实现思路:1、可以模仿ListView的BaseAdapter那样建立一个抽象的adapter,后面的适配将继承自该抽象类;2、自定义布局容易,将tab栏,菜单内容、背影逐一添加到布局容器中;3、实现下拉和收缩效果,并为

2018-01-28 14:28:27 217

原创 仿QQ空间之打造个性化可拉伸头部控件

(使用格式工厂将视频转换成gif格式时影响了gif效果,运行在真机上不影响效果)这个效果是采用ListView并给ListView添加一个头部来实现的,当然了要处理ListView的上拉,下拉及松开肯定要对ListView自定义;先来看下ListView的头部xml文件:RelativeLayout xmlns:android="http://schemas.android.co

2017-12-25 14:39:26 264

原创 自定view--小清新加载进度动画特效

实现上面的效果涉及到左右两个小圆点、中间小圆点、线条的绘制,同时涉及到属性动画及二阶贝塞尔曲线的使用。

2017-12-23 22:05:50 234

原创 仿淘宝地址联动选择

这个效果的其实就是列表数据的刷新,选择对应的省份同时获取其下面的城市数据并刷新列表,选择对应的城市同时获取其下面的区县数据并刷新列表,并将选择好的数据返回给上一个页面;当触发返回或者物理返回键的时候做同样的处理就可以了。实现主要代码:public class DataActivity extends AppCompatActivity implements View.OnClickListener

2017-12-23 15:34:04 2439

原创 MVP模式及BaseActivity的简单封装

在刚开始做项目的时候采用的都是MVC的模式开发的,但是接触MVP模式后,感觉真的不一样,MVP模式虽然导致类的增加,但是activity中代码减少了很多,同时整洁性提高了很多,所以在之后的项目开发中肯定会采用MVP模式开发。MVC模式: M—>Model:业务逻辑和实体模型 V—->View:对应的布局文件 C—->Controllor对应于Activity 通过MVC模型图可以看

2017-12-21 07:27:17 1169

原创 手写ButterKnife视图注入,解决findViewById

在上一篇手写IOC注解,解决findViewById和点击事件(http://blog.csdn.net/wangwo1991/article/details/78811831) 博客中就实现了IOC注解,不过那里采用的是运行时注解的方式实现的,这里的手写ButterKnife将采用编译时注解的方式实现;运行时注解的方式实现过程中使用了不少反射,会对运行效率有影响,而编译时注解的方式实现对运行效率

2017-12-16 11:07:52 303

原创 手写IOC注解,解决findViewById和点击事件

在项目开发中findViewById以及控件的点击事件的场景是最多的,大量的findViewById并强转会浪费不少的开发时间,那么是否能解决掉这个问题呢?答案肯定是能解决;像xutils、butterKnidnife等主流第三方框架就很好的解决了这些问题,那么这些第三方的已经帮助开发者解决掉这些问题了,是否还要自己学着去写一套手写的IOC注解呢,肯定是需要的,在学习写的过程中能更好的理解这些第三

2017-12-15 15:43:04 431

原创 设置Android整个应用程序字体大小

Android手机在系统设置里面都可以对系统字体的大小进行缩放比例的设置,如果进行了系统字体大小缩放比例的设置,安装在手机上的app内的字体大小也会跟着改变,如果app没有进行相应的适配的话,就会导致app的用户视觉效果很差,可以调用相应的api给app字体一个固定的比例,即使用户进行了设置,app的页面效果也不会受影响;Resources resource = context.getResourc

2017-12-02 11:11:19 6537

原创 Android数据库面向对象之增、删、改、查

在项目开发中都会碰要将一些数据缓存在本地,SharedPreferences、流的方式写入文件、数据库等方式都可实现,在这些方式中,数据库相对来说要繁琐些,使用的频率相应的也会少些,刚好这段时间在学习数据库,故将所学记录于此。 一般情况下都会将数据库存储在data/目录下,这里是将数据库存在的sd里面,不是data/目录下,在学习中涉及到这些方面的知识: 1、泛型 2、注解 3、反射 4、

2017-11-12 16:13:47 769

原创 面向对象六大基本原则

在学习或者项目开发中,经常会碰到设计原则和设计模式,设计原则相对于设计模式来说更抽象些,贯穿于整个项目架构和项目编程中,是一个灵魂,设计模式的话,通俗一点说就是某个功能模块使用何种方式去实现。一、单一职责原则 定义: 单一职责原则(SRP:Single responsibility principle)又称单一功能原则,它规定一个类应该只有一个发生变化的原因。通俗一点就是,一个类或者接

2017-10-25 08:21:22 292

原创 ExpandableListView万能adapter封装轻松实现分组列表及单选效果

在项目开发中有时候会碰到类似于QQ好友列表的分组列表效果的需求,实现的方式有很多种,可以用ListView、RecyclerView等方式实现,其实系统提供了ExpandableListView可以很轻松的实现;ExpandableListView extends ListView所有在用法上和ListView差不多,都需要设置adapter,但是ExpandableListView的adapter

2017-10-20 22:36:02 1248

原创 RecyclerView+PopupWindow实现下拉列表选择效果

已适配Android7.0 popuwindow全屏显示问题 实现主要代码:/** * Created by miao on 2017/9/29. * 自定义PopupWindow 实现下拉列表效果 */public abstract class SpinerPopWindow<T> extends PopupWindow{ private List<T> datas;

2017-10-16 07:58:59 2763

原创 设计模式之建造者模式

定义: 将一个复杂的构建和它的表示相分离,使得同样的构建过程可以创建不同的表示。角色: 在一个标准的建造者模式中有这几个角色: 1、抽象建造者(Builder):为创建一个产品对象的各个部件指定抽象接口。 2、具体建造者(ConcreteBuilder):实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口。 3、设计者或指导者(Dire

2017-10-08 21:14:37 255

原创 Only the original thread that created a view hierarchy can touch its views.

场景: 项目开发中会涉及到一些耗时操作,这个时候就会开启一个子线程,将耗时操作放到子线程中取操作,操作完毕后,往往还要同步更新ui,这个时候如果直接在子线程中更新ui,将会导致程序的闪退,同时还会看到android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a

2017-09-28 08:31:13 6811 2

原创 CountDownTimer轻松搞定apk启动广告和获取验证码效果

项目开发中,碰到了需要在apk启动进入程序时显示一个几秒中的广告图及注册或修改密码时需要获取验证码的效果,其实android系统已经封装了一个倒计时的类:CountDownTimer,可以很轻松的实现一个倒计时的效果。 效果如下: 代码实现如下:/** * 倒计时帮助类 */public class CountDownUtils { // 倒计时timer private C

2017-09-28 08:04:00 383

原创 单例模式

单例模式,是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类,通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。第一种:饿汉式public class SingleEasy { private SingleEasy(){ } //类初始化的时候就已经加载 private static SingleEasy singleEasy=

2017-09-22 08:23:18 250

仿酷狗菜单栏侧滑效果

仿酷狗菜单栏侧滑效果,支持手势快速滑动打开或者关闭,打开或关闭时有阴影和缩放效果,

2017-07-12

图片选择和图片压缩

类似于微信的图片选择,可以自由控制图片选择的张数,也可以单图选择,图片压缩采用libjpeg,3M左右的图片压缩大概80kb左右,压缩大小可以进行设置,已适配Android6.0和Android7.0

2017-07-07

调用相机和相册设置头像,圆形头像

调用相机和相册设置头像,圆形头像,已适配Android6.0和Android7.0

2017-07-07

ScrollView滑动悬停效果

ScrollView滑动悬停效果

2017-03-20

RadioButton和ViewPager实现页面滑动效果

RadioButton和ViewPager实现页面滑动效果

2017-02-14

引导页面实现

FragmentActivity中几个fragment滑动切换,fragment中ViewPager无限轮播和滑动切换方式实现的引导页

2017-02-07

图片选择和上传

类似于微信朋友圈的图片选择和上传

2017-02-06

动态申请权限

有关于Android6.0动态获取权限

2017-02-06

listview封装

对listview进行了封装,同时也对findViewById进行了封装处理

2017-02-04

登陆页面,解决了因为虚拟键盘的弹起对button的遮挡,

登陆页面,解决了因为虚拟键盘的弹起对button的遮挡,

2017-02-04

获取通讯录姓名和号码

获取通讯录姓名和号码

2017-02-03

android图片选择

android图片选择

2017-01-22

关于android6.0动态获取权限

关于android6.0动态获取权限

2017-01-22

android图片上传

android图片上传

2017-01-20

android仿微信朋友圈图片选择

android仿微信朋友圈图片选择

2017-01-20

Android调用系统相机或相册更换头像

Android调用系统相机或相册更换头像

2016-08-01

android listview,ExpandableListView实现单选,多选,全选,edittext实现批量输入

android listview,ExpandableListView实现单选,多选,全选,edittext实现批量输入

2016-08-01

androidradionbutton等自定义

radionbutton,checkbox,RatingBar自定义,可根据自身开发需要进行修改。

2016-02-15

Canvas的实际使用--自定义搜索效果

Canvas的实际使用--自定义搜索效果 资源博客地址:http://blog.csdn.net/wangwo1991/article/details/77940721

2017-09-12

Canvas的实际使用

Canvas的实际使用,通过自定义HorizontalScrollView和自定义Drawable实现,博客地址:http://blog.csdn.net/wangwo1991/article/details/77920736

2017-09-10

Paint画笔的基本使用及自定义进度条

Paint画笔的基本使用及自定义进度条 资源播客:http://blog.csdn.net/wangwo1991/article/details/77689003

2017-08-29

条目侧滑删除效果

条目侧滑删除效果

2017-08-27

CardView轻松实现圆角卡片效果

CardView轻松实现圆角卡片效果

2017-08-19

RecyclerView的基本使用、万能adapter及多条目的实现、添加头部和底部、下拉刷新上拉加载、仿支付宝拖拽,滑动删除

RecyclerView的基本使用、RecyclerView万能adapter及多条目的实现、RecyclerView添加头部和底部、RecyclerView下拉刷新上拉加载、RecyclerView仿支付宝拖拽,滑动删除

2017-08-18

仿qq空间标题变色和仿知乎列表滑动隐藏和显示效果

仿qq空间标题变色和仿知乎列表滑动隐藏和显示效果

2017-08-16

scrollview+edittext实现批量输入效果

scrollview+edittext实现批量输入效果,解决了edittext焦点错位,数据复用问题

2017-08-11

沉浸式状态栏的实现

沉浸式状态栏的实现,已兼容android4.4

2017-08-10

TabLayout+ViewPager轻松搞定Tab栏切换

TabLayout+ViewPager轻松搞定Tab栏切换,实现顶部和底部的tab栏切换

2017-07-30

Toolbar基本使用及Toolbar+ListView实现滑动变色

Toolbar基本使用及Toolbar+ListView实现滑动变色

2017-07-29

DrawerLayout和NavigationView轻松实现抽屉侧滑

DrawerLayout和NavigationView轻松实现抽屉侧滑

2017-07-24

RecyclerView的基本使用、封装、多条目布局、添加头部和底部

RecyclerView万能adapter的封装,多条目布局的实现,RecyclerView添加头部和底部的实现

2017-07-16

仿QQ6.0侧滑菜单效果

仿QQ6.0侧滑菜单效果,处理了手势快速滑动和相应的事件拦截

2017-07-15

仿支付宝支付弹框效果

自定义view方式实现仿支付宝支付弹框效果,dialog是参照系统dialog方式实现的万能dialog

2017-07-10

空空如也

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

TA关注的人

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