
Android开发笔记
文章平均质量分 53
「已注销」
Read the fucking source code.
展开
-
UI组件——WebViewClient部分api解释
shouldOverrideUrlLoading post不调用此方法,当webview.loadUrl(url),url为非HTTP url 时,返回trueonPageStarted 开始加载,每个主frame只调用一次onPageFinished 页面加载完成,此时图片可能没有加载onLoadResource 加载资源onPageCommitVisible 通知应用程序不在绘制来自上原创 2017-09-07 10:24:54 · 450 阅读 · 0 评论 -
AS的一些设置
由于一个代码提示问题,原本想new Scroller(),但是AS无论如何不给提示,经过code completion的各种设置,依然不能解决,索性把AS卸载了,但是悲催的是忘记了export settings ,导致各种原有的设置都消失了,但是吧,突然之间也不知道需要设置写什么东西,为了防止以后忘记,现在就做好记录吧。 Ctrl + Alt + S 打开设置面板,如果打不开,可能是AS快捷键和搜原创 2017-06-11 22:51:20 · 401 阅读 · 0 评论 -
APK动态加载框架解析(一)
既然项目中刚好用到了动态加载框架DL,我就索性研究了一下DL的实现,现在已有小成,否则也不敢出来写博客,那么今天我们就看一下DL最简单的实现,直接上代码,代码中有足够清楚的解释,这段代码只能做到启动Plugin,暂时还不能获取plugin中的各种资源 先看一下宿主程序的Manifest配置 权限: <uses-permission android:name="android.permission原创 2017-05-10 18:07:08 · 444 阅读 · 0 评论 -
Class类探索(一)
Class类是干嘛的 Class类封装了对象和接口运行时的状态,JVM依靠Class类来正确运行,Class类在类装载时就是内存中创建了Class类对象,八种基本数据类型(boolean,byte,char,short,int ,long ,float,double)和void 关键字都对应着一个Class类对象(包装类:Boolean,Byte,Character,Short,Integet,原创 2017-05-04 21:20:47 · 286 阅读 · 0 评论 -
SD卡的写入权限问题
Android 6.0以后Google提高了Android的安全性,我们对SD卡的操作也不能像以前一样只要在manifest文件中声明<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />就可以了,我们还需要在代码中做如下设置: if (ContextCompat.checkSelfPermissio原创 2017-04-17 21:19:14 · 2899 阅读 · 0 评论 -
AS中jar包冲突解决方案
使用exclude 过滤可以很好的解决Android项目中jar包冲突的问题,比如说你的项目中引用了v7,同时又引入了v4,在Android 中v7包默认是包含v4包的,那么就可以使用exclude解决冲突,只需要添加如下代码:compile ('com.android.support:appcompat-v7:25.2.0'){exclude module: 'support-v4'}在你创建原创 2017-04-17 20:57:55 · 3347 阅读 · 0 评论 -
Umeng推送踩过的坑
前段时间公司APP搞分享,用了UMeng的社会化分享,现在要加个推送上来,本来以为十分简单,按照文档来就好了,谁知道其中也踩过几个坑,下面细数踩过的坑: 1、无ticker的时候,小图标icon显示不正常,如下图: 其实解决很简单,和我们没关系,只要UI把图片背景设置为透明就好了。 2、一些手机无法收推送,比如我的华为手机,原因是so配置问题,解决办法是去Umeng的U-Push SDK集原创 2017-04-11 11:21:50 · 673 阅读 · 0 评论 -
适配超宽屏智能手机
为了向用户提供更具吸引力的观看体验,许多Android OEM正在尝试使用新的超宽屏智能手机。三星刚刚宣布推出新款旗舰设备,即三星Galaxy S8,采用全新的显示格式,宽高比为18.5:9。 LG移动世界大会在今年早些时候推出了新的旗舰设备,即LG G6,屏幕长宽比为18:9。 (左)在18.5:9设备上,最大纵横比设置为16:9的应用程序 (右)在18.5:9设备上,最大宽高比设置为或超过翻译 2017-03-31 10:35:10 · 3112 阅读 · 3 评论 -
Android软件盘WindowSoftInputMode属性详解
在开发当中,我们常常需要让客户输入电话、验证码、金额、密码等,这个时候如果软件盘设置不好,那么可能导致一个糟糕的用户体验,比如可能会出现,软件盘遮挡住输入框下面的提交按钮,其他输入框无法输入等,其实只要我们设置好WindowSoftInputMode的属性,这种问题还是可以完美解决的。下面我们来看看WindowSoftInputMode的详细属性 属性主要分为两类: 控制软件盘显示的时机: 1原创 2017-03-28 23:41:49 · 351 阅读 · 0 评论 -
Android NFC介绍
NFC是什么? NFC是Near Field Communication缩写,即近距离无线通讯技术。NFC采用主动和被动两种通信模式。手机NFC支持三种工作模式:读/写标签模式,点到点模式,模拟卡片模式。 重要的包 重要的两个包:android.nfc和android.nfc.tech包 重要的类 android.nfc包下有四个: NfcManager:管理所有NFC Adapter,原创 2017-03-28 15:04:25 · 849 阅读 · 0 评论 -
AndroidStudio中依赖同一个jar解决方法
工作中可能会遇到这样的情况,例如,你的APP和某一个Module之间重复依赖了某个jar,或者是Module之间重复依赖了某个jar,这个是时候我们该怎么解决呢? 方法一:共同依赖某个jar 1.在自己的APP的build.gradle中引入 compile files(‘libs/*.jar’) 2.在Module的build.gradle中引入 provided files(‘lib原创 2017-03-19 11:24:28 · 1044 阅读 · 0 评论 -
从源码分析TabLayout的setupWithViewPager方法的原理
今天说说TabLayout和ViewPager是怎么实现相互绑定的,Google确实牛,通过这个setupWithViewPager 方法设置一下,他们就可以实现TabLayout与ViewPager互相变换,我们通过使用肯定可以得出tabLayout.setupWithViewPager(viewPager)有三个作用 第一个是从VIewPager中获取TabLayout的Title 第二个是原创 2017-03-17 20:57:12 · 4183 阅读 · 0 评论 -
使用DDMS查看data下数据、ADB环境变量的配置
废话不多说,先说说为什么用到了adb,本来是想用DDMS来看看data里面的数据的,结果发现data怎么点都点不开,于是就Google为什么,结果发现是并没有外部人员read数据权限,那么很明显了,接下来就是获取权限,于是就用了platform-tools下面的adb.exe去获取权限,结果又发现双击是打不开的,为什么呢,原来是没有配置adb的环境变量,不过就算是配置了也是双击不开的,需要用cmd命原创 2017-03-16 20:47:54 · 748 阅读 · 0 评论 -
Android colorPrimary、colorPrimaryDark、colorAccent详解
一图看懂5.0 colorPrimary、colorPrimaryDark、colorAccent。 注:本图非本人制作,如有侵权,告知即删!原创 2017-03-16 20:44:29 · 8336 阅读 · 0 评论 -
从源码分析Scrolview 嵌套ListView 导致ListView条目不能展开的原理
以前开发遇到ScrollView嵌套ListView的问题,虽然一脸懵逼啥也不懂,但是只要Google,问题总是可以解决,但是如果不深究只是拷贝的话,那么以后遇到还是一脸懵逼,今天无意中遇到了有人问这样的问题,那么就我就来解答一下部分人的疑惑。 1、 Question——问题 ScrollView嵌套ListView的时候ListView的条目只显示一个,而且快速滑动的时候也会出问题。原创 2017-03-16 20:40:42 · 386 阅读 · 0 评论 -
与系统的礼尚往来
和系统之间的往来,可以通过 android.provider包下相关类进行查询 1:需要跳转到Android 系统的设置页面 可以在Settings类中查询到ACTION_SETTINGS字段,然后通过startActivity(new Intent(Settings.ACTION_SETTINGS));设置跳转 2:打开系统相册 Intent intent = new Intent(I...原创 2017-06-12 14:40:33 · 266 阅读 · 0 评论 -
UI组件——WebChromeClient部分api解释
onProgressChanged 网页加载进度发生改变onReceivedTitle 接收到的网站标题onReceivedIcon 接收到的网站logoonShowCustomView 进入全屏模式onHideCustomView 退出全屏模式原创 2017-09-07 10:32:33 · 196 阅读 · 0 评论 -
UI组件——WebSettings部分api解释
setSupportZoon 支持放缩功能,一般和setBuiltInZoomControls一起使用setMediaPlaybackRequiresUserGesture 是否通过手势触发播放媒体setBuiltInZoomControls 是否使用内部放缩机制,包含悬浮的放缩控件,可以通过setDisplayZoomControls(false)设置不显示悬浮放缩控件setDisplayZ原创 2017-09-07 11:04:06 · 504 阅读 · 0 评论 -
UI组件——WebView部分api释义
destroy() 销毁当前WebView,WebView有潜在的内存泄漏问题,当不需要的时候,最好销毁掉,避免内存泄漏 @Override protected void onDestroy() { super.onDestroy(); if (mMyWebView!=null) { ViewGroup rootView = (Vi原创 2017-08-28 18:08:32 · 555 阅读 · 0 评论 -
UI组件——WebView使用总结
重点1:loadUrl及loadDataWithBaseURL的使用 这部分内容已经在 UI组件——WebView部分api释义 讲过了,还不懂得可以去看一下重点2:h5页面在Android WebView中的适配问题 笔者踩过的坑是h5页面未对移动端做任何适配,而且在h5页面指定了,导致Android端适配很差,我们Android端在这里自己搞各种适配的工作,结果还是不理想,其实这个问题理想解原创 2017-09-07 16:18:55 · 896 阅读 · 0 评论 -
UI组件——SwipeRefrshLayout最详细的源码解析——UI绘制
Ui绘制概述 SwipeRefreshLayout的绘制基本上分为三步,第一步是自定义一个CircleImageView,这个CircleImageView加入了5.0的新特效,既有个阴影的效果,不知道平常大家注意到没,第二步是自定义了一个MaterialProgressDrawable作为ImageView的 Drawable,既通过imageView.setImageDrawable(Draw原创 2017-09-19 16:28:24 · 618 阅读 · 0 评论 -
UI组件——SwipeRefreshLayout源码解析——MaterialProgressDrawable的绘制
MaterialProgressDrawable的绘制 MaterialProgressDrawable是一个自定义的Drawable,需要重写一下一个方法:draw:绘制图形setAlpha:设置透明度setColorFilter:设置填充色getOpacity:获取不透明度getIntrinsicWidth、getIntrinsicHeight:获取Drawable的宽高我们直接看最重原创 2017-09-20 10:35:58 · 450 阅读 · 0 评论 -
UI组件——SwipeRefreshLayout学习笔记
mStrokeInset: 表示让RectF向上下、左右的增加或减少量,arcBounds.inset(mStrokeInset, mStrokeInset);,mStrokeInset>0是减小,mStrokeInsetif (mRingCenterRadius 0 || minEdge 0) { /*Math.ceil测试:表示大于或等于参数的最小值 var aa = Mat原创 2017-09-20 15:25:57 · 225 阅读 · 0 评论 -
android框架——MVVM
MVVM转载 2017-11-09 16:33:31 · 483 阅读 · 0 评论 -
动画——属性动画(Property Animation)
概述:属性动画是android3.0以后提供的一种动画实现机制,它可以作用于任何对象,对对象的属性赋值 修改,从而实现动画效果。 实现原理:在一定的时间内,通过插值器(动画改变的趋势)与估值器(动画具体变化的数值),不断改 变对象的属性,实现动画的效果。原创 2017-11-16 11:03:21 · 468 阅读 · 0 评论 -
动画——视图动画(View Animation)
动画——View Animation简介:视图动画又称补间动画,是android中比较古老的一种动画,补间动画执行完以后 并没有改变View的真是位置属性。AlphaAnimation:透明度动画 xml属性 Java方法 解释 android:fromAlpha AlphaAnimation(float) 开始的透明度 android:toAlpha Alpha原创 2017-11-15 17:51:44 · 860 阅读 · 0 评论 -
动画——帧动画(Drawable Animation)
动画——帧动画(Drawable Animation)概述: 帧动画就是在一段时间内执行多少帧,每一帧都是Drawable下的一个 资源文件。也就是说一段时间内播放多少个drawable,其本质就是 drawable。这种动画往往会使用大量的图片,不但适配复杂,而且 会增加安装包的体积,更有甚者出现内存溢出的情况。非绝境,不 建议使用!使用:第一步:定义帧动画 在drawable目录原创 2017-11-16 10:54:19 · 704 阅读 · 0 评论