自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

包子君的博客

保持一种淡然,是人生最美的姿态。

  • 博客(34)
  • 资源 (15)
  • 收藏
  • 关注

原创 抽象工厂模式

创建型设计模式–>抽象工厂模式抽象工厂也是创建型模式之一。定义: 为创建一组相关或者是相互依赖的对象提供一个接口,而不需要 指定他们的具体类。使用场景: 一个对象组由相同的约束时可以使用抽象工厂模式。简单实现: /** * 抽象产品类A * 抽象产品角色,它为每种产品声明接口 */ public abstract class AbstractProductA { /** * 每个具体的产品子类需要实现的方法 */ pub

2021-05-01 13:41:26 84

原创 工厂方法模式

应用最广泛的模式–> 工厂方法模式工厂方法模式是创建型设计模式之一。定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。使用场景:任何需要生产复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new 就可以完成创建对象无需使用工厂模式。工厂方法通用模板 // 抽线产品类 public abstract class Product { /** * 产品类的抽象方法 */ public abstract void me

2021-04-29 17:11:44 71

原创 设计模式之单例模式

单例模式 一个类只有一个实列,而且自行实例化并向整个系统提供这个实例。 实现单例模式有以下几个关键点: 1.构造函数不对外开放,一般为Private; 2.通过一个惊呆方法或者枚举返回单例对象; 3.确保单例类的对象有且只有一个,尤其是在多线程环境下; 4.确保单例类对象在反序列化时不会重新构建对象。1. 饿汉单例模式 public class Singleton { privat...

2021-04-25 16:18:42 99

原创 Kotlin基础

Kotlin 基础变量Kotlin 变量分为两种:- 可变变量+ 可变变量对应于Java 的普通变量。+ 可变变量用 var 来修饰,可以进行多次修改。- 不可变变量+ 不可变变量相当于Java中用final关键字修饰的常量。+ 不可变变量用 val 来修饰,只能进行一次初始化。 声明变量: var 变量名:数据类型 val 变量名 :数据类型 示例:...

2019-09-22 23:29:54 353

原创 面向对象六大原则

面向对象六大原则面向接口编程(面向抽象编程)、 职责单一、 对修改关闭、对扩展开放、优化代码第一步 --> 单一职责原则英文全称是 Single Responsibility Principle ,缩写式 SRP。一个类中,应该仅有一个引起它变花得原因。简单说,一个类中应该是一组相关性很高得函数、数据封装。让程序更稳定更灵活 --> 开闭原则英文全称是 Open C...

2019-09-18 21:03:37 276

原创 文件大小转换工具类

文件大小转换工具类最简单得文件大小转换工具 /** * * @param bytes 转换得字节 * @param si 是否需要单位 * @return */ public static String byteFormat(long bytes, boolean si) { String[] units = n...

2019-01-06 22:39:09 1204

原创 监听截屏工具类

监听截屏工具类/** * 截屏监听管理器 <br/><br/> * <p> * <p> * 截屏判断依据: 监听媒体数据库的数据改变, 在有数据改变时获取最后 * 插入数据库的一条图片数据, 如果符合以下规则, 则认为截屏了: <br/> * <p> * 1. 时间判断, 图片的生成时间在开始监听之后, 并与当...

2019-01-06 22:31:10 336

原创 线程池工具类

线程池工具类public class ThreadPoolManager { public static ThreadPool instance; // 获取单例的线程池对象 public static ThreadPool getInstance() { if (instance == null) { synchronized...

2019-01-06 22:28:57 2152 3

原创 Android文件解压

Android 解压工具类请注意以下解压工具 是不支持中文路径 /** * * @param archive 解压文件得路径 * @param decompressDir 解压文件目标路径 * @param isDeleteZip 解压完毕是否删除解压文件 * @throws IOException */ publi...

2019-01-06 22:25:47 4694 5

翻译 Android SoundPool只能播放6秒 mp3 文件

在项目中使用 SoundPool 播放提示音的时候 遇到了 一个只有不到10秒的音频文件,在使用使用的时候只播放 了5、6秒的样子,完全不能全部播放完毕。在google 各种搜索相关资料的时候,终于还是被我发现了。 在 stackoverflow 上面找到了相关解决问题的方法。原文地址:Android SoundPool can only play 6 seconds mp3? ps: 注意可能...

2018-12-22 11:07:13 2838

原创 Java 时间日期

获取日期 String todayDate = SimpleDateFormat.getDateInstance().format(new Date()); SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd); String date = s.format(new Date());获取日期和时间String s...

2018-10-09 22:17:12 104

原创 Android studio 引入 Module

Android studio 引入 ModuleFile --> Import Module ---->导入要引入的库 ------>Finish.如果 引入的库没有没有成功编译 ,则在 跟目录找到 settings.gradle 打开 这个文件 inculde 后面添加引入库的名字,注意 库 名字前要加 ’ :’ 用来区分是库还是 主项目。...

2018-10-09 11:52:58 231

原创 Android studio 使用过程遇到 错误 解决 笔记

Android studio 使用过程遇到 错误 解决 笔记有时候代码可能会少个(),或者是删除了某一行代码以及一个方法,项目报红没有发现,在 运行 app 的时候回直接报 :Compilation failed; see the compiler error output for details.这个提示给的很不友好好,一点都不明确是什么原因就报错了,解决方法: 命令行...

2018-09-05 13:34:09 281

原创 Handler 源码 走一走,看一看

Handler 源码 走一走,看一看 Handler 是如何发送和处理消息文章将分为以下几步介绍 HandlerHandler 是做什么的?为什么使用Handler? Handler 是如何使用的?Handler 通过new 创建以后都做了什么?Handler 是如何发送和处理消息的使用Handler 应该注意什么Handler 是做什么的?Handle...

2018-04-26 17:53:52 2714

原创 Activity 过度动画让界面切换实现如牛奶般润滑的切换

在Activity界面切换的时候 ,我们都是是通过统一的动画来管理activity 进入进出,这种动画都写在xml 文件里面,并在 开启activty 之后开始调用 动画的,(startActivity(context,class); overridePendingTransition(inId,outId))来进行界面的切换,但是这样的切换不免给用户带来的是生硬的切换,没有那么一丝的顺

2017-03-03 18:04:07 929

原创 自定义View(一)

#### 不知不觉告别了2016,迎来了2017年,回顾这一年,收获颇多.这一年结识了志同道合的一群小伙伴,每天都逗逼这讨论着 美女、技术、以及互相撩骚,充满着欢乐而又充实的生活。很感谢我的小伙伴们,都是满满的正能量。 - 如何自定义 View 呢? - 如何把写入 xml 里面的属性和值,告知 View 呢? - 如何把我们想要的 View 显示到屏幕上呢? ####

2017-01-02 19:02:01 274

转载 Http协议详解(一)

本文转自:老李的地下室 引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 HTTP协议的主要特点可概括如下

2016-11-17 09:19:43 399

原创 java 8 Lambda 表达式你会用了吗?

jdk1.8没有添加新的关键字 lambda ,而是用()->{} 这么一个表达式符号来表示 lambda 这么一个新鲜的函数是为了什么?使用 这个表达式 有可以给我们带来什么样的好处呢?敬请关注 本台 Lambda 的无穷大在写之前肯定是要看关于 lambda 文章的,这篇文章很简单就是告诉你 lambda 函数是如何使用的 ( Java 8新特性:lambda表达式),要想详细了解 Lambda

2016-10-31 09:16:35 615

原创 Gradle for Android studio 的基本认识(一)

引用:Gradle是一种基于Groovy的动态DSL,而Groovy语言是一种基于jvm的动态语言。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。一般我

2016-10-26 16:54:24 344 2

原创 Android 5.0 Toolbar 的学习使用

参考来自:官方以及AigeStudio在没有 Toolbar 出来之前我们都是使用的 ActionBar,但是 ActionBar 的可定制行太低,完全不能满足我们的App,在 ToolBar 之前 我们都是通过自定义 layout 来满足我们App的标题栏! 在5.0 以后 我们可以 通过ToolBar 来满足我们的标题栏,并且可以遵循 官方的 Material Design 的设计风格。下面就来

2016-10-20 18:41:50 400

原创 android 获取手机通讯录以及 6.0 授权

获取手机通讯录获取手机通讯录需要使用到 ContentProvider 的观察者 ContentResolver 来获取。` //获取手机通讯录联系人 ContentResolver resolver = this.getContentResolver(); // 获取手机联系人 Cursor phoneCursor = resolver.query(ContactsContr

2016-06-14 16:26:03 12104 2

原创 viewpager不返回最大值实现轮播

private boolean isAutoPlay = false; private long currentTime; @Override public void onPageScrollStateChanged(int state) { ViewPagerS#CROLL_STATE_IDLE * @see

2016-06-06 21:10:14 302

原创 关于图片使用缩放不起作用这是就需要使用 Matrix

if (mSelectPostion == position) {// Bitmap bitmap = ((BitmapDrawable)iv.getDrawable()).getBitmap(); Matrix matrix = new Matrix(); matrix.setScale(1.2f, 1.2f);

2016-06-06 21:07:58 836

原创 把 view 转换成bitmap对象

View mViewInflater = LayoutInflater.from(this).inflate(R.layout.item_gallery, null); ImageView mGalleryImage = (ImageView) mViewInflater.findViewById(R.id.gallery_image); mGalle

2016-06-06 21:06:40 1587

原创 使用 recyclerView 布局显示不合理的问题

在项目中 RecyclerView 替代了 listVeiw 和 GridView ,但是在使用过程难免不出现问题。比如 itmen 的布局文件 width 使用 match_parent ; 这个属性的时候却出现了显示 warp_content 现象,也就是包裹内容,但是在预览界面就是显示正常的。解决方法: @Override public MyViewHolder onCreateVi

2016-05-30 10:04:51 715

原创 验证码倒计时

上次写过系统提供的验证码倒计时的一个类 CountDownTimer 但是这个类在使用的时候总是会出现倒计时的偏差,所以只好自##### 己使用 Handler 或者 Timer 来实现。项目中 注册、忘记密码还##### 有现在有出现一个直接拿手机号码配合验证码直接登陆的都用到了验证码倒计时,这是后我们不可能每个类里面都使用 Handler,最直接的就是抽取出来一个,也减少了代码的重复性。我就跟

2016-05-06 23:08:06 361

原创 在 xml 设置的 onClick 属性 为什么有时候点击不起作用呢?

在 xml 文件中“显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法” //activity.findViewById方法进行映射的。 这里由于用到了反射所以我们在项目中要不适用这个属性来设置点击事件。

2016-04-15 17:28:28 729 2

原创 自定义listView 的下拉刷新上拉加载

前两天看了下自定义view的博客,虽说博客写的很详细,但是还是我们可以理解的 ,所以也只好硬着头皮去看,不去看你永远不会,学习本身就是一个积累,不放弃,不抛弃。看了别让人写的下拉刷新上拉加载,看起来也能看懂,可是一到自己真的去实现去敲的时候,还真的是要费一些心思,本来很菜,但是贵在学习吗,不扯了,表演重点,我不会总结,也就是在博客瞎写写,防止以用的时候有时候自己懵逼了 还要到处找,就在这里进行我的点

2016-04-12 18:00:01 388

原创 SwipeRefreshLayout 的简单使用

Android 自带的下拉刷新 SwipeRefreshLayout 控件SwipeRefreshLayout 是 v4 包下的一个刷新控件,它直接继承自 ViewGroup , 也可以说是一个容器,里面可以包括 view 和 xxxlayout ,但是它里面只接受一个,不管是 view 或者是 xxxLayout 只能有其中的一个作为子类。 SwipeRefreshLayout 在 API19 下

2016-04-11 11:45:44 672

原创 使用 CountDownTimer 实现验证码倒计时

CountDownTime 是android给我们提供的一个倒计时的类使用这个类避免了我们在代码里写很多冗余的代码 。源码是这样解说这个类的:在安排的倒计时里,在时间到来为止,随着时间的间隔去有规律的通知。以下就是源码的说明和用例:Schedule a countdown until a time in the future, withregular notifications on inter

2016-04-05 17:14:30 456

原创 Activity 和 Fragment 的交互

FramentLayout 和 RadioGroup 的配合使用 以及 Fragment 和 Activity 之间的通信我们的 app 的整体是一个 Activity ,在 Activity 加载的布局里面我们都是使用 FrameLayout 和 RadioGroup 配合的使用来显示不同数据的展示.但是在使用过程中我们 即可以使用 replace() 来替换界面,也可以使用 FragmentT

2016-03-31 11:48:02 1393 1

原创 android下数据的持久化保存

数据持久化存储有 文件存储(内置存储,外置存储(sd卡)), SharedPreference , 数据库 , 服务器存储. 使用文件 , SharedPreference 或数据库来保存数据会相对更简单些,而且比起将数据保存在 SD 卡中会更加的安全.一 : 文件存储 1,将数据存储到文件中 Context 类中提供了一个openFileOutPut()方法,用于将数据存储到

2016-03-25 14:05:13 445

原创 android如何把Res目录下的一张图片保存到本地

/** * res目录下面的一张图片保存到本地 * @param id 图片的id */private void saveImage(int id) { // getFilesDir().getAbsolutePath()+"/image"\ //在本地创建一个文件夹 File file = new File(getFilesDir().getAbsoluteP

2016-02-26 09:33:50 5809

原创 listView异步加载图片导致图片错位、闪烁、重复的问题的解决

androidListView是android中重要的控件,几乎每一个项目都会用到。但是在使用中我们避免不了会出现一些问题,包括一些滑动事件的处理,例如:ListView中嵌套scrollView,容易出现listView展现数据不全的问题,还有就是listView中我们在加载图片的时候出现图片在加载中出现加载出来的图片出现闪烁,在滑动listView中我们我们都会复用listView的缓存展示下一

2016-02-22 22:05:56 2939

ITelephony和NeighboringCellInfo.zip

电话号码拦截功能时需要用到endCall(),需要使用该文件 注意:此文件需要放到包com.android.internal.telephony下,同时还需将NeighboringCellInfo.aidl文件放到android.telephony包下

2020-04-14

Toolbar的认识

Android 5.0 出来Toolbar的学习

2016-10-20

TextView点击显示更多

TextView点击显示更多

2016-10-18

仿京东地址选择

仿京东商城地址选择

2016-10-11

path类的使用

path类以及PathEffect的结合使用

2016-10-09

android java 共用的身份证校验

android 和 java 共适用的 校验身份证的合法性 ,正确性

2016-10-08

放跑马灯公告

跑马灯 显示两行文字的跑马灯

2016-09-29

仿支付宝输入框

仿支付宝输入框

2016-07-31

省市区三级列表

省市区三级列表

2016-07-29

年月日期控件

年月日期控件

2016-07-29

右上角popupwindow

右上角显示popupwindow

2016-07-22

仿IOS底部点出对话框

仿IOS底部弹出对话框

2016-07-22

自定义 ListView 添加下拉刷新和上拉加载

继承 ListView 在原有继承进行扩展

2016-04-12

android验证码倒计时

使用android 提供的类快速集成验证码倒计时

2016-04-05

Fragment 和 Activiyt的交互

FramentLayout 和 RadioGroup 的配合使用以及 Activiyt 和Framgentn的数据传递

2016-03-31

空空如也

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

TA关注的人

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