自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (8)
  • 收藏
  • 关注

原创 Android自定义图片涂鸦View实现绘制和橡皮擦功能

首先,我们需要创建一个自定义的View类来实现涂鸦功能。以下是一个名为DoodleView的自定义View类,它继承自View,并实现了绘制和触摸事件处理的功能。// 属性和变量声明// ...// 触摸事件处理// ...// 绘制操作// ...// 设置绘制的图片// ...// 设置橡皮擦模式// ...在DoodleView类中,我们定义了一些属性和变量,包括记录上一次触摸位置的坐标、绘制的图片路径、是否擦除模式、路径步骤等信息。

2023-12-15 11:54:22 215

原创 retrofit2断点下载

这里先说一下断点下载的实现方法,在下载的过程中如果中断,记录下已下载的大小,当再次下载时我们就从已下载的文件长度开始,从而实现断点下载。这里主要以retrofit2网络框架为例定义下载后存储路径 //文件存储路径 final String patch = context.getExternalCacheDir() + "/downlaod/";这里获取的是 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据。定义接口 @

2020-05-22 14:30:36 598

原创 Android全局悬浮窗

全局悬浮窗在许多应用中都能见到,点击Home键,小窗口仍然会在屏幕上显示。如微信视频,360软件清理等等,在此记录一下实现代码。权限悬浮窗要能够全局显示就必须要申请权限: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:na...

2019-08-21 12:02:18 9237 3

原创 Android中activity的生命周期详解

生命周期周期即活动从开始到结束所经历的各种状态。生命周期即活动从开始到结束所经历的各个状态。从一个状态到另一个状态的转变,从无到有再到无,这样一个过程中所经历的状态就叫做生命周期。Acitivity的四种状态运行:如果一个活动被移到了前台(活动栈顶部)。暂停:如果一个活动被另一个非全屏的活动所覆盖(比如一个Dialog),那么该活动就失去了焦点,它将会暂停(但它仍然保留所有的状态和成员信...

2019-08-21 10:39:19 519

原创 Android动画属性说明及使用

Android 动画大概可以分为两类,一类是 Tween 动画(补间动画),即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放设置好的每一个图像(逐帧动画)。补间动画Animation代表抽象的动画类,它的实现类有如下几个:AlphaAnimation、ScaleAnimation、RotateAnimation、TranslateAni...

2019-08-21 10:38:08 153

原创 Android安全性浅谈

对于一款成熟的App,一定会开始涉及安全和性能的问题,这里就先说一下安全性的问题,今天突然收到我们线上某app的安全性检测报告,一看一千多个安全隐患感觉这app完全无安全性可言,仔细一看其实都是我们开发过程的一个规范问题,虽然这款app不是我开发的,但是有很多安全隐患我也的确是没有考虑过,这里就不得不赶紧拓展补充能量了。ProGuard在Android Studio当中混淆APK,借助SDK中...

2019-08-21 10:37:19 940

原创 Android界面手势监听

GestureDetector监听GestureDetector即识别手势,如点击、长按、滑动等手势操作。查看源码里面的方法很多,主要使用的也就那么几个。onDown(MotionEvent e):按下屏幕的的回调。onLongPress(MotionEvent e):长按的回调(长按的时间不同设备可能不同)onScroll(MotionEvent e1, MotionEvent e2,...

2019-08-21 10:36:36 772

原创 AS打包错误

不能勾选签名今天打包时发现签名的V1和V2都不能选择了,原来是studio的版本升级到了3.1.3,然而Gradle的并版本却是2.2版本,而签名必须要studio的版本大于2.3版本并且Gradle的版本大于2.2版本才能同时勾选的,因此修改Gradle的版本即可勾选V1和V2签名了。V1和V2 签名V1:可对签名后的文件,作适当修改,并重新压缩。V2:不能对签名后的 APK作任何修改,...

2019-08-21 10:35:41 397

原创 Android插件开发

相信大家在开发过程中都会用到一些插件,如butterknife,插件的使用大大的节约了我们的开发时间,看了鸿洋的《学会编写Android Studio插件 别停留在用的程度了》这篇博客后,我就想着自己去写一个插件了;在Android开发中,现在流行的mvp模式,每个界面都会创建对应的mvp框架,写的很浪费时间,虽然网上也有一些插件,但是每个人封装的base基类都有自己的风格,因此我就想写出一个自...

2019-08-21 10:34:03 632

原创 捕获处理未捕获的异常

在开发中异常是难以避免的,开发过程中我们可以通过Logcat查看异常信息快速定位异常的原因进行处理,但是当app给测试或者上线后遇到一些难以重现的bug时,我们就很难找出问题所在了,所以需要捕获未捕获的异常。java中给我们提供了UncaughtExceptionHandler这个接口,实现这个接口就可以捕获未捕获的异常信息了。捕获处理未捕获的异常public class MyUncaught...

2019-08-21 10:31:32 2710

原创 Retrofit2+Rxjava简易封装使用

Retrofit作为当下主流网络框架之一,在github上已达到27.2的Star,而在Retrofit2的基础上拓展Rxjava和RxAndroid使得网络处理更加的方便,对于网络设置,数据处理也有了更多了拓展性。添加依赖compile 'com.squareup.retrofit2:retrofit:2.3.0' //retrofit网络compile 'com.sq...

2018-04-20 16:57:44 292

原创 DBFlow数据库使用

概述DBFlow是一个基于AnnotationProcessing(注解处理器)的强大、健壮同时又简单的ORM框架。效率紧跟greenDAO其后。基于注解,使用apt技术,在编译过程中生成操作类,使用方式和ActiveAndroid高度相似,使用简单。DBFlow官方教程DBFlow的Github官方地址导入DBFlow依赖// DBFlow 数据库版本def dbf...

2018-03-16 12:05:48 1317

原创 Android7.0以上跨应用

FileUriExposedException概述Android N 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/Download/appName.apk exposed beyond app through Intent.getData();示例代码 public sta...

2018-03-16 11:12:44 352

原创 DrawerLayout仿QQ侧滑菜单

DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。效果图如下: 主界面布局&lt;?xml version="1.0" encoding="utf-8"?&...

2018-03-16 11:11:23 1172

原创 BroadcastReceiver的使用

BroadcastReceiver概述BroadcastReceiver(广播接收器),属于 Android 四大组件之一,监听和接收App发出的广播消息,并做出响应。如:Android不同组件间的通信(含 :应用内 / 不同应用之间)、多线程通信、与 Android 系统在特定情况下的通信等。Android中的广播使用了设计模式中的观察者模式:基于消息的发布、订阅事件模型,因此在广播中有三个

2018-02-01 11:18:24 265

原创 自定义Dialog

现在很多App的提示对话框都非常有个性,系统的对话框样式说很落后都觉得是称赞了,下面开始自定义自己的Dialog,根据自己app的主题,设计出相应的Dialog的风格。设置Dialog风格 name="LoadDialog" parent="@android:style/Theme.Dialog"> -- @null--> item name="a

2018-01-27 12:52:16 148

原创 优雅的实现Fragment监听返回键

Activity可以通过重写onKeyDown(int keyCode, KeyEvent event),很容易的监听物理返回键事件,而Fragment并不能重写物理键监听事件。在一个Activity多个Fragment页面的应用中,很多时候有必要的监听每个Fragment返回事件,并对每个Fragment做特殊的数据处理。如果将每个Fragment的返回事件都在FragmentActivity中

2018-01-27 12:51:11 335

原创 Android 状态栏策略二

上一篇写了状态栏的基本操作,全屏显示(状态栏透明),使用上一篇的方法后会发现状态栏变得透明,但是状态栏的图标还是存在的,但是在有的应用场景是需要动态的改变状态栏的,这里继续上一篇没有写完的状态栏策略。setSystemUiVisibility 这里先说一下setSystemUiVisibility方法的几个参数,以及用法参数说明 1. View.SYSTEM_U

2018-01-27 12:50:19 147

原创 EventBus使用详解

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus在 GitHub上的开源库地址,刚开始使用的可以看一下,GitHub上有最基本的使用方法。EventBus引用最基本的引用如

2018-01-27 12:40:56 866

原创 Kotlin的基本语法和类型

基本类型Kotlin 中使用的基本类型:数字、字符、布尔值、数组与字符串。数字 Type Bit Double 64 loat 32 Long 64 Int 32 Short 16 Byte 8表示方式在Kotlin中数值长亮可用字面表达有:十进制: 123 Long 类型用大写

2018-01-15 20:05:13 140

原创 Kotlin初学篇

简介Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发,于2010年首次推出,次年开源。它与Java 100%互通,并具备诸多Java尚不支持的新特性。Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言,对于现在Android市场来说,多掌握一门语言是有绝对的优势的,作为一个程序员,如果跟不上IT语言的更新步伐只怕就会被淘汰了,和

2018-01-13 15:43:49 197

原创 Java 集合浅谈

集合的概念集合,或者叫容器,是一个包含多个元素的对象;集合可以对数据进行存储,检索,操作;集合类存放于java.util包中。而我们使用的一些集合都是实现的java.util.Collection 这个集合接口。 集合类型主要有3种:set(集)、list(列表)和map(映射),List集合Java 集合框架中最常使用的几种 List 实现类是 ArrayList,LinkedLi

2018-01-12 20:26:13 156

原创 Android 状态栏策略

实现状态栏一体化, 主要分为两种方式. 一种是通过xml配置文件设置, 一种是通过在activity中设置属性. 下面将介绍两种实现方法

2017-12-29 16:36:31 136

原创 Gson的序列化和反序列化

序列化和反序列化Java序列化是指把Java对象转换为可传输的字节序列的过程;而Java反序列化是指把传输的字节序列恢复为Java对象的过程。这两个过程使我们非常方便的存储和传输数据。Gson概述Gson是一个Java库,可用于将Java对象转换为JSON表示,它也可以用来将JSON字符串转换为等效的Java对象。

2017-12-23 10:23:15 17518 1

原创 apk反编译和AS基本混淆规则

一.反编译用压缩包管理软件(如WinRAR、WinZIP等)解压apk得到classes.dex文件,把该文件放到dex2jar文件夹里。用dex2jar工具软件得到相应的jar文件。

2017-12-22 17:57:21 629

原创 发布GitHub开源库

AS 第三方库的使用,发布github开源库

2017-12-21 14:59:18 872

原创 Retrofit2网络框架的使用

对于Retrofit2刚开始用的时候说真的很不习惯,感觉封装OKhttp之后反而更麻烦了,后来用到项目中就感觉这个框架很强大,请求网络变得更灵活了,而且易于维护,还可以和时下比较火热的RxJava进行完美融合,在Retrofit2中是用Gson解析数据的。这里只是简单的说下Retrofit2的使用,对于Retrofit2 + RxJava 本人也是在学习中,各位有好的资源还请分享,共同学习。

2017-12-19 12:03:01 2611

原创 自定义评分样式

项目中有一个评分显示,是红色爱心表示评分,在Android中有一个星评控件RatingBar,样式是和淘宝评论一样的五角星,—-显然这与我的需求不符合,但是一个个的写就会很麻烦,所以我选择自定义样式来实现这个功能,当然,本人对于自定义控件还是懵懂状态,还在学习中,这里也是查看相关资料后写的,继续努力!!!

2017-12-19 11:14:31 858

转载 标签流控件

标签流LabelsView,自动换行

2017-10-27 16:28:37 257

原创 定时器

timer.schedule(taskcc, 1000, 1000);//启动定时器 handler.postDelayed(this, 1000); new Thread(new MyThread()).start();

2017-10-12 10:04:48 179

原创 FlycoTabLayout

首先添加FlycoTabLayout依赖库项目代码如下:工具类ViewFindUtils,用于初始化控件public class ViewFindUtils{ /** * ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量 用法: * * <pre> * if (convertView == null) *

2017-10-10 16:06:56 339

原创 WebView基本使用

WebView基本使用 //初始化 webview= (WebView) findViewById(R.id.webView); //或者代码生成 WebView webview =new WebView(this); //垂直不显示滚动条 webview.setVerticalScrollBarEnabled(false); //声明W

2017-09-25 14:32:23 371

原创 okhttp-utils

okhttp目前对以下需求进行了封装* 一般的get请求* 一般的post请求* 基于Http Post的文件上传(类似表单)* 文件下载/加载图片* 上传下载的进度回调* 支持取消某个请求* 支持自定义Callback* 支持HEAD、DELETE、PATCH、PUT* 支持sessio的保持

2017-04-09 10:07:48 347

原创 爆炸消失特效

//爆破效果//实现爆炸动画只需实例化工具类即可,Layout指要有爆炸效果的布局 ExplosionField explosionField = new ExplosionField(this); explosionField.addListener(Layout);

2017-04-09 10:02:14 317

原创 Edittext文字飞入飞出效果

飞入飞出特效只需自定义一个Edittext即可public class BiuEditText extends EditText { private ViewGroup contentContainer; private int height; private String cacheStr = ""; public BiuEditText(Context

2017-04-09 09:46:39 875

原创 朝生夕死

当风不再飞舞,当花不再盛开,当水流不再激情,当内心不再平静,世界到底是安静的还是热闹的呢?才发现这一切都与此时的我无关。都说草木无情,可为何又有“木石情缘”一说呢。落花有意流水无情,无情的到底是流水还是落花又有谁真的了解过,流水也许无情,它川流不息,从不曾为谁驻足,也许有情,它甘愿成为一潭死水,常伴落花,待落花消散,独自叹息;落花也许有情,甘愿腐朽也要一亲芳泽,和流水度过朝夕,落花也许无情,风儿一

2016-11-10 16:01:23 260

原创 凌云志

巧拙几许何需辩金麟岂会惧人言只待九霄风云变化龙遨游天地间

2016-08-12 16:30:17 295

原创 Listview和GridView加载动画

GridView gridView = (GridView) this.findViewById(R.id.gridview); gridView .setLayoutAnimation(controller); //GridView 设置动画效果 ListView listview= (ListView)this.findViewById(R.id.listview); listview.setLayoutAnimation(controller); //ListView 设置动画

2016-07-15 15:04:00 402

原创 英汉互译

首先要到有道申请一个API,将keyfrom&key替换http://fanyi.youdao.com/openapi.do?keyfrom=yzyzyzyz&key=613475076&type=data&doctype=json&version=1.1&only=translate&q=翻译内容异步访问private NewTextView txt_output;@O

2016-07-15 13:53:33 633

原创 GPS定位获取位置,获取天气

public static String getWeather(String city) { String result = null; String url = "http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=2&city=" + city + "&dfc=3"; try { DefaultHttpClient client = getDefaultHttpClient2(); HttpGe

2016-07-15 13:30:25 4321

MvvmPlugin,Mvvm框架代码生成插件源码

Mvvm框架代码生成插件demo、打包后的jar ,As直接导入即可自动生成mvvm框架代码

2022-07-29

MyDemo.zip

Android 全局悬浮框,可拖动改变位置,程序后台悬浮框依旧可以显示在屏幕上

2019-08-21

Android mvp框架代码生成插件

一键生成Android mvp代码框架,节约开发时间,全自动生成布局文件界面以及mvp的框架

2018-08-21

html有趣动画

用js+css+html写的一个圆球撞击多人的动画,圆球岁鼠标移动撞击摇摆

2018-04-20

多渠道打包

多渠道打包工具以及打包方法流程说明,在cmd中一条命令打包多个渠道

2018-01-27

Fragment回收优化+Eventbus框架+侧滑栏

Fragment回收优化,Eventbus框架基本使用,DrawerLayout侧滑栏

2018-01-27

连接蓝牙打印机,输入打印内容打印

连接蓝牙打印机,输入内容,点击打印即可

2016-07-15

英汉互译,语音文字互转

输入中文可翻译英文并语音播放,输入英文可翻译中文并语音播放,不输入直接点击可以将语音转换为文字,但得安装百度语音助手,翻译播放可不安装

2016-07-15

空空如也

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

TA关注的人

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