android
文章平均质量分 68
MrCoderr
这个作者很懒,什么都没留下…
展开
-
Android:关于Window少为人知的一面
转自:https://www.jianshu.com/p/f9c3c9a19772?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation前言大部分情况下,我们和Window打交道的情况比较少,一般都是与Activity和View“交流”。最近做了不...转载 2019-07-08 19:21:20 · 936 阅读 · 0 评论 -
Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.
今天构造项目引入最新的ButterKnife的时候碰到了一些问题,特记录下来。Android Library中需要引入ButterKnife,现在最新版本为8.8.1,按照官方教程需要在根目录的builde.gradle中添加插件和依赖库,在使用库中添加依赖和注解器,以及插件依赖。然后确报一下错误,github上面已经有了这个问题issue,JakeWharton大神也给了相关原创 2018-01-20 20:30:15 · 1081 阅读 · 0 评论 -
这两年android开发感想
不知不觉android开发两年多了,开发中有快乐的时光也有苦闷的日子,尤其是又要赶项目进度,又要改bug的日子,每天加班到深夜,不过那是最锻炼自己的,说实话 ,每当闲下来的时候,就变得懒了,觉得还是自己毅力不够,其实自己现在会的知识只是冰山一角,越是学习,发现自己不会的东西更多,尤其是碰到难点的时候,进度会很慢。接下来继续沉淀,厚积薄发,fighting!!!简单总结下关于android开发知原创 2016-03-25 10:22:10 · 740 阅读 · 0 评论 -
依赖注入原理(为什么需要依赖注入)
0. 前言在软件工程领域,依赖注入(Dependency Injection)是用于实现控制反转(Inversion of Control)的最常见的方式之一。本文主要介绍依赖注入原理和常见的实现方式,重点在于介绍这种年轻的设计模式的适用场景及优势。1. 为什么需要依赖注入控制反转用于解耦,解的究竟是谁和谁的耦?这是我在最初了解依赖注入时候产生的第一个问题。下面我引转载 2016-07-13 14:25:39 · 61457 阅读 · 4 评论 -
利用SurfaceView实现墨迹天气雪花效果
先看看效果图吧(小雪花的图片不是特别好,见谅)!分析: 雪花太多, 用动画实现比较复杂, 可以借助SurfaceView控件, 为啥用SurfaceView呢, 它和View的区别: SurfeceView是在一个新启的单独的线程中绘制界面(双缓冲),不会阻碍UI线程, 而View必须在主线程即UI线程中更新界面,可能会导致UI线程的阻塞.SurfaceView在处理touch事件原创 2017-03-31 16:01:22 · 1782 阅读 · 0 评论 -
属性动画系列之ViewPropertyAnimator
写在开始转载请注明:http://www.qinglinyi.com/posts/ViewPropertyAnimator/属性动画动画系列从开始到现在,其他类例如ValueAnimator、ObjectAnimator还有AnimatorSet等的介绍挺多的,但是关于ViewPropertyAnimator这个类的介绍似乎比较少,所以本文详细的介绍一下这个类(主要是这个类的内部实转载 2017-04-06 18:37:22 · 1033 阅读 · 0 评论 -
RxJava2对比RxJava
英文链接:What’s different in 2.0RxJava2相比RxJava1,它的改动还是很大的:Observable and Flowable在前一个版本里backpressure被集成到了Observable中,官方也提供了很多方法让我们来处理backpressure问题。但是有一些特殊的场景根本无法用其来解决,最常见的例如UI事件。而不处理backpres转载 2017-05-26 16:11:18 · 843 阅读 · 0 评论 -
深入了解View的绘制流程
转自: http://www.cnblogs.com/absfree/p/5097239.html1. ViewRoot ViewRoot是连接WindowManager与DecorView的纽带,View的整个绘制流程的三大步(measure、layout、draw)都是通过ViewRoot完成的。当Activity对象被创建完毕后,会将DecorView添加到Windo原创 2017-11-01 15:54:28 · 262 阅读 · 0 评论 -
数据库ROOM-Google新推
转自 http://www.jianshu.com/p/bb8bd5bc8304前言 今年,谷歌新推了不少东西,在看其新架构Architecture Components(AC架构是一个类似MVVM的架构,7.0之前,Google公布过不少MVP架构的官方Demo,看来现在其也是与时俱进了)的相关文章时,注意到一个新的东西_ROOM数据库,这是一个SQLITE类型数据库,原创 2017-11-24 11:14:28 · 2056 阅读 · 0 评论 -
android系统各种音量的获取与设置
获取系统音量通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单!设置音量的方法也很简单,AudioManager提供了方法:publicvoidsetStreamVolume(intstreamType,intindex,intflags)其中streamType有内置的常量,去文档里面就可以看到。JAVA代码:AudioManage转载 2017-11-03 16:27:00 · 9273 阅读 · 1 评论 -
Android设置屏幕亮度的两种方式
最近项目需要设置Android设备的亮度,本来以为很简单的功能,结果搞了好久才搞定,Android在这里埋了一个坑。下面具体说下:Android系统的亮度值是0~255,数据类型为int型。设置屏幕亮度有两种方式,一种是通过WindowManager去设置当前界面的亮度——注意,是当前界面,不是系统的亮度。这种方式代码如下private void setLight(Activity co转载 2017-11-03 16:16:40 · 10027 阅读 · 2 评论 -
Android.mk 文件语法详解
转:http://blog.sina.com.cn/s/blog_602f8770010148ce.html=====================================================================================0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Sou原创 2017-10-25 19:32:04 · 439 阅读 · 0 评论 -
为什么ConstraintLayout代替其他布局?
ConstraintLayout, 即约束布局, 在2016年由Google I/O推出. 从支持力度而言, 将成为主流布局样式, 完全代替其他布局, 减少布局的层级, 优化渲染性能. 在新版Android Studio中, ConstraintLayout已替代RelativeLayout, 成为HelloWorld项目的默认布局. ConstraintLayout作为非绑定(Unbundled...转载 2018-02-27 10:11:21 · 741 阅读 · 0 评论 -
Android中将其他app module转为library供app module使用
最近因为项目需要, 需要将另一个Android项目中的app module作为当前项目的library使用, 经过测试,以下方法可行.首先在当前项目中新建library module, 然后将需要导入的module中的jniLibs,libs,src,res,AndroidManifest.xml以及build.gradle中的文件及代码拷贝过去, 其中,build.gradle首行需要改为 ap...原创 2018-03-05 18:04:10 · 1494 阅读 · 0 评论 -
卡片式ViewPager,一屏展示多个pager item,设置高度不一致的tabBar
ViewPager的基本用法不必多说,这都很简单,我们可以在ViewPager中加载一个ImageView,也可以加载一个Fragment,这都是目前非常常见的用法。那么我今天说的是ViewPager中的PageTransformer属性,用好这个属性可以让我们的应用更加出彩,OK,那我们就开始吧!本文将从如下几方面来介绍: 1.clipChildren属性2.一个页面显示多个Vie...转载 2018-12-08 18:30:45 · 1748 阅读 · 0 评论 -
调用view.measure(0,0)时发生了什么
在 Activity 的 onCreate、onStart、OnResume 生命周期中,无法直接得到 View 的宽高信息。网上有以下几种常见的解决办法:在 Activity#onWindowFocusChanged 回调中获取宽高。 view.post(runnable),在 runnable 中获取宽高。 ViewTreeObserver 添加 OnGlobalLayoutList...转载 2018-10-12 17:54:31 · 1258 阅读 · 0 评论 -
maven库下载失败:Could not GET xxxx Received status code 500 from server: Internal Privoxy Error
由于某些jar包依赖下载不成功,所以在Android Studio settings中的http proxy中设置了代理,等下载成功后,在关闭代理,发现.gradle中的gradle.properties加入了代理配置,由于公司的maven库不能设置代理,所以在Android Studio中又关闭了代理,然后就报异常了 原来,只是在Andr...原创 2018-09-03 13:33:03 · 3943 阅读 · 0 评论 -
WMRouter:美团外卖Android开源路由框架
转自:https://tech.meituan.com/meituan_waimai_android_open_source_routing_framework.htmlWMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。WMRouter最初用于解决美团外卖C端App在业务演进过程中的实际问题,之后逐步推广到了美团其他App,因此我们决定将其开...转载 2018-08-24 15:29:08 · 3213 阅读 · 1 评论 -
解决android studio一直不停的indexing,一秒钟一次那种
File->Invalidate Caches/Restart原创 2018-08-20 11:19:34 · 3080 阅读 · 1 评论 -
通过反射解决在HuaWei手机出现Register too many Broadcast Receivers的crash
转载请注明出处:http://blog.csdn.net/llew2011/article/details/79054457 Android开发适配问题一直是一个让人头疼的话题,由于国内很多厂商都有对原生Android系统做不同的定制,结果导致适配起来很麻烦。印象最深的一个适配是让Notification的背景色做到和系统通知栏背景色一致,然后就是想各种办法做适配……近来在Bugly上...转载 2018-08-14 10:39:06 · 1940 阅读 · 0 评论 -
项目爬坑记之targetSdkVersion为23以下6.0中checkSelfPermission的问题
在6.0及以上的机子上运行targetSdkVersion<23的应用时,调用checkSelfPermission,不管用户是否授权,其返回值始终为PERMISSION_GRANTED,经查询资料, If your application is targeting an API level before 23 (Android M) then both:ContextCompat#c...转载 2018-07-26 14:22:22 · 1225 阅读 · 0 评论 -
AndroidVideoCache-视频边播放边缓存的代理策略
视频现状现在视频播放的需求越来越常见,就和16年上半年的直播一样,似乎不加个视频已经不是个正常的APP了,连微信朋友圈都支持上传小视频,更别谈以视频为本命的一系列APP。视频方面主要是两块,一个是视频录制,这个已经翻过一篇比较全的文章,再加上google开源的 grafika ,可以在踩坑时减少很多障碍,不过录制这块适配是大问题,需要不断调整。另一个方面就是视频播放,这方面的轮子比上面录制就多太多...转载 2018-07-04 11:09:35 · 8209 阅读 · 9 评论 -
项目爬坑记之使用ViewPager时调用adapter.notifyDateSetChanged() fragment不刷新问题
最近项目在使用ViewPager时调用adapter.notifyDatesetChanged() 碰到fragment不刷新问题,经查资料, 发现原创 2018-05-22 16:51:48 · 2180 阅读 · 0 评论 -
Android WebView 总结 —— 使用HTML5播放视频及全屏方案
在APP开发的过程中,会碰到需要在WebView中播放视频的需求,下面讲解一下如何在WebView中使用html5播放视频。1.让视频在各个Android版本能够正常播放在AndroidManifest.xml中声明HardwareAccelerate的标志,一般是添加在Activity的级别上。代码如下:<activity ... android:hardwareAccelerated="...转载 2018-04-11 17:48:17 · 1179 阅读 · 0 评论 -
Android 应用中跳转到应用市场评分示例
本篇文章主要介绍了Android 应用中跳转到应用市场评分示例,非常具有实用价值,需要的朋友可以参考下.在开发Android App过程中,经常会遇见这样的功能。从当前的app跳转到一个应用商店并且跳转到自己app的详情页面,让用户给自己的App进行评分、评价,从而提高自己App的排名。下面介绍三种方法实现该功能。方法一:通过系统隐式意图方式去调用应用市场app详情页try{ Uri uri ...转载 2018-03-21 17:43:22 · 4237 阅读 · 1 评论 -
终于搞懂令人迷惑的 StatusBar 了
转自 http://www.jianshu.com/p/c8221fb6b4fc随着Android版本的迭代,开发者对状态栏等控件有了更多的控制, google 一直在尝试引入新的Api来满足开发者的需求,但Api却一直不够完美,接口添加了很多,却都不够简单或者说完美,算上第三方厂商的特色行为,怎一个“乱”字了得。1、效果当前主流(2017)Android app StatusBar转载 2017-10-20 14:08:40 · 26511 阅读 · 0 评论 -
android仿今日头条下拉刷新中的vector动画
一直有留意到今日头条下拉刷新的效果, 真的很赞,在学习了svg drawable相关资料后, 参考博客http://blog.csdn.net/u012950099/article/details/52040028完成了今日头条下拉刷新中的动画, 首先看下效果图:录制效果有点渣,少了上边和下边两条线, 请大家见谅.....ps: gif中还有仿ios菊花loading效果, 仿qq下拉原创 2017-07-24 19:03:56 · 5899 阅读 · 8 评论 -
The APK file xxx.apk does not exist on disk. Error while Installing APK
今天编译装包到测试机莫名其妙的报了这个问题, 发现这个文件确实在该文件夹下是存在的, 不知道是不是as的bug好吧百度下吧, http://m.blog.csdn.net/qq446282412/article/details/51243441http://blog.csdn.net/afunx/article/details/70313402这两篇文章介绍的方法都试过了,但是没有原创 2017-06-26 14:44:13 · 2829 阅读 · 0 评论 -
Android 6.0 运行时权限处理完全解析
ACCESS_LOCATION_EXTRA_COMMANDSACCESS_NETWORK_STATEACCESS_NOTIFICATION_POLICYACCESS_WIFI_STATEBLUETOOTHBLUETOOTH_ADMINBROADCAST_STICKYCHANGE_NETWORK_STATECHANGE_WIFI_MULTICAST_STATECHANGE_WIFI_STATEDIS转载 2017-03-21 19:04:20 · 1173 阅读 · 0 评论 -
android LayoutInflater.inflate()的参数介绍
转自:http://www.cnblogs.com/wenfei123chai/p/4597404.htmlLayoutInflater.inflate()的作用就是将一个xml定义的布局文件实例化为view控件对象; 与findViewById区别: LayoutInflater.inflate是加载一个布局文件; findViewById则是从布局文件中转载 2017-02-23 14:52:32 · 487 阅读 · 0 评论 -
android 自定义ViewGroup实现仿淘宝的商品详情页
最近公司在新版本上有一个需要, 要在首页添加一个滑动效果, 具体就是仿照X宝的商品详情页, 拉到页面底部时有一个粘滞效果, 如下图 X东的商品详情页,如果用户继续向上拉的话就进入商品图文描述界面:刚开始是想拿来主义,直接从网上找个现成的demo来用, 但是网上无一例外的答案都特别统一: 几乎全部是ScrollView中再套两个Scroll转载 2016-12-07 18:46:19 · 3759 阅读 · 0 评论 -
PathMeasure
Path,不论是在自定义View还是动画,都占有举足轻重的地位。绘制Path,可以通过Android提供的API,或者是贝塞尔曲线、数学函数、图形组合等等方式,而要获取Path上每一个构成点的坐标,一般需要知道Path的函数方法,例如求解贝塞尔曲线上的点的De Casteljau算法,但对于一般的Path来说,是很难通过简单的函数方法来进行计算的,那么,如何来定位任意一个给定Path的任意一个点的转载 2016-12-06 14:54:40 · 1152 阅读 · 0 评论 -
Retrofit 2.0 超能实践,完美支持Https传输
前阵子看到圈子里Retrofit 2.0,RxJava(Android), OkHttp3.3 ,加之支持android和 iOS 的React Native , 火的不要不要的, 2015年新技术一大波来袭 ,看着自己项目还在用HttpClient, AsyncTask的原生开发 感觉自己已成火星人,实在顶不住内心的自卑压力,加之对新技术的追求,入手移动开发新三剑客,虽然目前关于他们的目前介绍的转载 2016-11-23 10:23:50 · 2331 阅读 · 0 评论 -
viewpager中彻底性动态添加、删除Fragment
碰到了ViewPager缓存fragment不能及时刷新fragment的问题,百度了好久,终于找到了答案和解决办法,转过来记录一下。viewpager嵌套fragment是一个比较帅气的使用,但是问题多多,毕竟没怎么用过。之前viewpager的使用顶多是在应用开始的介绍页,viewpager内嵌几张介绍图片,其实这个使用是比较常规的;假如嵌套布局搞的复杂点,如自定义view/fra转载 2016-07-21 15:28:27 · 3956 阅读 · 0 评论 -
Android zip文件压缩
转载地址:http://jondev.net/articles/Unzipping_Files_with_Android_%28Programmatically%291、文件解压缩import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.转载 2016-08-03 15:08:58 · 710 阅读 · 0 评论 -
目前安卓手机的cpu的架构,哪几个比较牛逼?
原创 2016-07-04 14:39:24 · 1286 阅读 · 0 评论 -
android native 和 H5 的交互
源生代码和H5的交互android:1: 默认的事情:Android 通过内置的UI控件WebView来加载网页。 网页是用一个网络地址来表示的: 其整个使用方法很简单如下:(android不关心实际的html5代码)String mUrl ="http://www.baidu.com"; //代表了某个网页的网址转载 2016-07-13 12:37:12 · 2051 阅读 · 0 评论 -
自定义ToggleButton选择控件
转载请注明出处:以前的项目中有关于手势开关的按钮,发现自带的ToggleButton不是很好看,于是花了些时间,自定义了个ToggleButton。先上效果图:其中,圆形button是可以随手指左右滑动的。大体思路是分以下几步: 首先是需要自定义属性:在values文件夹下的attrs xml文件中自定义属性:原创 2016-03-25 14:28:38 · 1176 阅读 · 0 评论 -
全面介绍Android的MVVM框架 - 数据绑定
本教程是跟着 Data Binding Guide 学习过程中得出的一些实转载 2016-04-04 17:22:46 · 968 阅读 · 0 评论 -
android vector pathData探究,几分钟绘制自己的vectordrawable
之前经常看到一些酷酷的图标效果, 深入进去发现不是直接用的图片, 而是一些以Vector标签开头的xml文件, 于是就看到了如下代码:<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:v原创 2017-04-07 18:29:36 · 9279 阅读 · 2 评论