Android
文章平均质量分 88
残梦之翼
这个作者很懒,什么都没留下…
展开
-
retrofit2断点下载
这里先说一下断点下载的实现方法,在下载的过程中如果中断,记录下已下载的大小,当再次下载时我们就从已下载的文件长度开始,从而实现断点下载。这里主要以retrofit2网络框架为例定义下载后存储路径 //文件存储路径 final String patch = context.getExternalCacheDir() + "/downlaod/";这里获取的是 SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据。定义接口 @原创 2020-05-22 14:30:36 · 653 阅读 · 0 评论 -
BroadcastReceiver的使用
BroadcastReceiver概述BroadcastReceiver(广播接收器),属于 Android 四大组件之一,监听和接收App发出的广播消息,并做出响应。如:Android不同组件间的通信(含 :应用内 / 不同应用之间)、多线程通信、与 Android 系统在特定情况下的通信等。Android中的广播使用了设计模式中的观察者模式:基于消息的发布、订阅事件模型,因此在广播中有三个原创 2018-02-01 11:18:24 · 281 阅读 · 0 评论 -
EventBus使用详解
EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。EventBus在 GitHub上的开源库地址,刚开始使用的可以看一下,GitHub上有最基本的使用方法。EventBus引用最基本的引用如原创 2018-01-27 12:40:56 · 920 阅读 · 0 评论 -
Android 状态栏策略二
上一篇写了状态栏的基本操作,全屏显示(状态栏透明),使用上一篇的方法后会发现状态栏变得透明,但是状态栏的图标还是存在的,但是在有的应用场景是需要动态的改变状态栏的,这里继续上一篇没有写完的状态栏策略。setSystemUiVisibility 这里先说一下setSystemUiVisibility方法的几个参数,以及用法参数说明 1. View.SYSTEM_U原创 2018-01-27 12:50:19 · 174 阅读 · 0 评论 -
优雅的实现Fragment监听返回键
Activity可以通过重写onKeyDown(int keyCode, KeyEvent event),很容易的监听物理返回键事件,而Fragment并不能重写物理键监听事件。在一个Activity多个Fragment页面的应用中,很多时候有必要的监听每个Fragment返回事件,并对每个Fragment做特殊的数据处理。如果将每个Fragment的返回事件都在FragmentActivity中原创 2018-01-27 12:51:11 · 400 阅读 · 0 评论 -
自定义Dialog
现在很多App的提示对话框都非常有个性,系统的对话框样式说很落后都觉得是称赞了,下面开始自定义自己的Dialog,根据自己app的主题,设计出相应的Dialog的风格。设置Dialog风格 name="LoadDialog" parent="@android:style/Theme.Dialog"> -- @null--> item name="a原创 2018-01-27 12:52:16 · 169 阅读 · 0 评论 -
DrawerLayout仿QQ侧滑菜单
DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。效果图如下: 主界面布局<?xml version="1.0" encoding="utf-8"?&...原创 2018-03-16 11:11:23 · 1195 阅读 · 0 评论 -
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 · 370 阅读 · 0 评论 -
DBFlow数据库使用
概述DBFlow是一个基于AnnotationProcessing(注解处理器)的强大、健壮同时又简单的ORM框架。效率紧跟greenDAO其后。基于注解,使用apt技术,在编译过程中生成操作类,使用方式和ActiveAndroid高度相似,使用简单。DBFlow官方教程DBFlow的Github官方地址导入DBFlow依赖// DBFlow 数据库版本def dbf...原创 2018-03-16 12:05:48 · 1364 阅读 · 0 评论 -
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 · 325 阅读 · 0 评论 -
捕获处理未捕获的异常
在开发中异常是难以避免的,开发过程中我们可以通过Logcat查看异常信息快速定位异常的原因进行处理,但是当app给测试或者上线后遇到一些难以重现的bug时,我们就很难找出问题所在了,所以需要捕获未捕获的异常。java中给我们提供了UncaughtExceptionHandler这个接口,实现这个接口就可以捕获未捕获的异常信息了。捕获处理未捕获的异常public class MyUncaught...原创 2019-08-21 10:31:32 · 2778 阅读 · 0 评论 -
Android插件开发
相信大家在开发过程中都会用到一些插件,如butterknife,插件的使用大大的节约了我们的开发时间,看了鸿洋的《学会编写Android Studio插件 别停留在用的程度了》这篇博客后,我就想着自己去写一个插件了;在Android开发中,现在流行的mvp模式,每个界面都会创建对应的mvp框架,写的很浪费时间,虽然网上也有一些插件,但是每个人封装的base基类都有自己的风格,因此我就想写出一个自...原创 2019-08-21 10:34:03 · 686 阅读 · 0 评论 -
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 · 445 阅读 · 0 评论 -
Android界面手势监听
GestureDetector监听GestureDetector即识别手势,如点击、长按、滑动等手势操作。查看源码里面的方法很多,主要使用的也就那么几个。onDown(MotionEvent e):按下屏幕的的回调。onLongPress(MotionEvent e):长按的回调(长按的时间不同设备可能不同)onScroll(MotionEvent e1, MotionEvent e2,...原创 2019-08-21 10:36:36 · 854 阅读 · 0 评论 -
Android安全性浅谈
对于一款成熟的App,一定会开始涉及安全和性能的问题,这里就先说一下安全性的问题,今天突然收到我们线上某app的安全性检测报告,一看一千多个安全隐患感觉这app完全无安全性可言,仔细一看其实都是我们开发过程的一个规范问题,虽然这款app不是我开发的,但是有很多安全隐患我也的确是没有考虑过,这里就不得不赶紧拓展补充能量了。ProGuard在Android Studio当中混淆APK,借助SDK中...原创 2019-08-21 10:37:19 · 1005 阅读 · 0 评论 -
Android动画属性说明及使用
Android 动画大概可以分为两类,一类是 Tween 动画(补间动画),即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放设置好的每一个图像(逐帧动画)。补间动画Animation代表抽象的动画类,它的实现类有如下几个:AlphaAnimation、ScaleAnimation、RotateAnimation、TranslateAni...原创 2019-08-21 10:38:08 · 173 阅读 · 0 评论 -
Android中activity的生命周期详解
生命周期周期即活动从开始到结束所经历的各种状态。生命周期即活动从开始到结束所经历的各个状态。从一个状态到另一个状态的转变,从无到有再到无,这样一个过程中所经历的状态就叫做生命周期。Acitivity的四种状态运行:如果一个活动被移到了前台(活动栈顶部)。暂停:如果一个活动被另一个非全屏的活动所覆盖(比如一个Dialog),那么该活动就失去了焦点,它将会暂停(但它仍然保留所有的状态和成员信...原创 2019-08-21 10:39:19 · 586 阅读 · 0 评论 -
Android全局悬浮窗
全局悬浮窗在许多应用中都能见到,点击Home键,小窗口仍然会在屏幕上显示。如微信视频,360软件清理等等,在此记录一下实现代码。权限悬浮窗要能够全局显示就必须要申请权限: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:na...原创 2019-08-21 12:02:18 · 9440 阅读 · 3 评论 -
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 · 159 阅读 · 0 评论 -
Android 状态栏策略
实现状态栏一体化, 主要分为两种方式. 一种是通过xml配置文件设置, 一种是通过在activity中设置属性. 下面将介绍两种实现方法原创 2017-12-29 16:36:31 · 158 阅读 · 0 评论 -
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 · 4429 阅读 · 0 评论 -
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 · 416 阅读 · 0 评论 -
英汉互译
首先要到有道申请一个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 · 694 阅读 · 0 评论 -
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 · 907 阅读 · 0 评论 -
okhttp-utils
okhttp目前对以下需求进行了封装* 一般的get请求* 一般的post请求* 基于Http Post的文件上传(类似表单)* 文件下载/加载图片* 上传下载的进度回调* 支持取消某个请求* 支持自定义Callback* 支持HEAD、DELETE、PATCH、PUT* 支持sessio的保持原创 2017-04-09 10:07:48 · 377 阅读 · 0 评论 -
爆炸消失特效
//爆破效果//实现爆炸动画只需实例化工具类即可,Layout指要有爆炸效果的布局 ExplosionField explosionField = new ExplosionField(this); explosionField.addListener(Layout);原创 2017-04-09 10:02:14 · 342 阅读 · 0 评论 -
FlycoTabLayout
首先添加FlycoTabLayout依赖库项目代码如下:工具类ViewFindUtils,用于初始化控件public class ViewFindUtils{ /** * ViewHolder简洁写法,避免适配器中重复定义ViewHolder,减少代码量 用法: * * <pre> * if (convertView == null) *原创 2017-10-10 16:06:56 · 359 阅读 · 0 评论 -
标签流控件
标签流LabelsView,自动换行转载 2017-10-27 16:28:37 · 285 阅读 · 0 评论 -
定时器
timer.schedule(taskcc, 1000, 1000);//启动定时器 handler.postDelayed(this, 1000); new Thread(new MyThread()).start();原创 2017-10-12 10:04:48 · 197 阅读 · 0 评论 -
WebView基本使用
WebView基本使用 //初始化 webview= (WebView) findViewById(R.id.webView); //或者代码生成 WebView webview =new WebView(this); //垂直不显示滚动条 webview.setVerticalScrollBarEnabled(false); //声明W原创 2017-09-25 14:32:23 · 404 阅读 · 0 评论 -
发布GitHub开源库
AS 第三方库的使用,发布github开源库原创 2017-12-21 14:59:18 · 922 阅读 · 0 评论 -
apk反编译和AS基本混淆规则
一.反编译用压缩包管理软件(如WinRAR、WinZIP等)解压apk得到classes.dex文件,把该文件放到dex2jar文件夹里。用dex2jar工具软件得到相应的jar文件。原创 2017-12-22 17:57:21 · 666 阅读 · 0 评论 -
Gson的序列化和反序列化
序列化和反序列化Java序列化是指把Java对象转换为可传输的字节序列的过程;而Java反序列化是指把传输的字节序列恢复为Java对象的过程。这两个过程使我们非常方便的存储和传输数据。Gson概述Gson是一个Java库,可用于将Java对象转换为JSON表示,它也可以用来将JSON字符串转换为等效的Java对象。原创 2017-12-23 10:23:15 · 17616 阅读 · 1 评论 -
自定义评分样式
项目中有一个评分显示,是红色爱心表示评分,在Android中有一个星评控件RatingBar,样式是和淘宝评论一样的五角星,—-显然这与我的需求不符合,但是一个个的写就会很麻烦,所以我选择自定义样式来实现这个功能,当然,本人对于自定义控件还是懵懂状态,还在学习中,这里也是查看相关资料后写的,继续努力!!!原创 2017-12-19 11:14:31 · 881 阅读 · 0 评论 -
Retrofit2网络框架的使用
对于Retrofit2刚开始用的时候说真的很不习惯,感觉封装OKhttp之后反而更麻烦了,后来用到项目中就感觉这个框架很强大,请求网络变得更灵活了,而且易于维护,还可以和时下比较火热的RxJava进行完美融合,在Retrofit2中是用Gson解析数据的。这里只是简单的说下Retrofit2的使用,对于Retrofit2 + RxJava 本人也是在学习中,各位有好的资源还请分享,共同学习。原创 2017-12-19 12:03:01 · 2687 阅读 · 0 评论 -
Java 集合浅谈
集合的概念集合,或者叫容器,是一个包含多个元素的对象;集合可以对数据进行存储,检索,操作;集合类存放于java.util包中。而我们使用的一些集合都是实现的java.util.Collection 这个集合接口。 集合类型主要有3种:set(集)、list(列表)和map(映射),List集合Java 集合框架中最常使用的几种 List 实现类是 ArrayList,LinkedLi原创 2018-01-12 20:26:13 · 187 阅读 · 0 评论 -
Kotlin初学篇
简介Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发,于2010年首次推出,次年开源。它与Java 100%互通,并具备诸多Java尚不支持的新特性。Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言,对于现在Android市场来说,多掌握一门语言是有绝对的优势的,作为一个程序员,如果跟不上IT语言的更新步伐只怕就会被淘汰了,和原创 2018-01-13 15:43:49 · 237 阅读 · 0 评论 -
Android获取手机信息
获取手机基本信息及手机号码等。AndroidManifest.xml加权限获取基本信息private String getData() { String txt=""; TelephonyManager mTm= (TelephonyManager) getSystemService(TELEPHONY_SERVICE);原创 2016-07-15 13:20:33 · 334 阅读 · 0 评论