- 博客(16)
- 收藏
- 关注
原创 ContextWrapper,ContextImpl,Context的关系及dialog传入application的context为什么会报错
问题在Android中都知道context,activity,application,service都间接的继承于context。在他们内部都有一个context,那他们之间有什么区别吗,dialog创建时可以传入application的context吗?一开始看到这个问题的时候一脸懵逼,还是通过查看源码寻找一下答案吧。各种context源码Context源码public abstract class Context { */ public abstract AssetMan
2020-06-01 19:02:28
989
原创 Android 创建activity流程-基于api28
Android 9.0版本的activity的启动流程于之前相比发生了一些改动,但是改动也不大。本文基于Android 9.0版本源码,从Activity启动方法startActivity为切入口分析整个流程。首先从activity的startActivity开始//activity @Override public void startActivity(Intent intent) { this.startActivity(intent, null); }
2020-06-01 16:34:42
2331
1
原创 圆环百分比分布图
有时候我们会遇到做百分比分布图的功能,这样的功能说难不难,说容易也不容易,主要是对绘制api和动画掌握的较为熟悉就行,下面就试试做下这个功能首先看个效果图:一、分析实现这个效果要做哪些事:1.画一个底部灰色圆 2.画绿色圆弧 3.画红褐色圆弧动态圆弧的实现可以通过动画来实现,首先是绿色圆弧,只需要动态增加圆弧所需要经过的弧度即可,红褐色圆弧则就需要将起点设置在绿圆弧的结束位置,结束点在绿圆弧的起
2017-11-14 17:04:33
3441
原创 Android贝塞尔曲线运用-圆形水波进度
上此讲了用贝塞尔曲线去做水波显示动画,在最后说了要实现一个圆形水波进度条,那这一篇就说下怎么实现一个圆形水波进度条,先上个图看看效果要是想这个效果需要掌握上篇说的那些东西外,还需要知道canvas的裁剪知识范围裁剪canvas.clipRect();裁剪出来一个矩形范围 canvas.clipRect(getWidth()/2-200,getHeight()/2-200,getWidth()/2+2
2017-09-20 15:45:14
1836
原创 Android贝塞尔曲线-水波篇
在做自定义view时,很多时候会用到贝塞尔曲线这个东西去实现一些效果,像以前写的那个仿直播点赞动画的实现就是用到了贝塞尔曲线,这次说的水波也会用到贝塞尔曲线这个东西。Android贝塞尔曲线api首先看下贝塞尔曲线公式:一阶二阶其中p0是起点,p1是控制点,p2是终点三阶其中p0是起点,p1,p2是控制点,p3是终点Android做好了相应的api,分别如下:二阶:quadTo(float x1,
2017-09-18 22:16:32
2555
原创 okhttp单项验证
上篇提到picasso加载https图片说到了okhttp的单向验证问题,也就不解释啥叫单向认证了,先看一下谷歌的单向认证代码 try { CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream in = AppContext.getInstance().
2017-08-24 09:43:14
932
原创 使用picasso加载需要证书的https图片
我在项目中用到的图片加载框架是picasso,但是最近遇到个问题,picasso加载不出来公司的https图片,查了下需要将以下代码到application中final Picasso picasso = new Picasso.Builder(this) .downloader(new OkHttp3Downloader(client))
2017-08-23 18:02:04
2722
原创 Alterdialog中不弹出软键盘原因分析及解决办法
相信很多人都做过自定义的alterdialog,但不知道有没有发现当alterdialog布局中有exittext的时候即使edittext获得焦点也不能弹出软键盘,是不是很操蛋,而将alterdialog换成dialog的时候就可以的弹出了。下面就去分析一下为什么会这样看一下alterdialog这个类,点击去就会看到头部注释上有这么一段话The AlertDialog class takes c
2017-08-23 10:50:14
3878
原创 让textview字体大小自适应宽度
很多时候需要动态根据字符长度设置字体的大小来适应给定的宽度,一般来说可以通过measureText()或者getTextBounds来实现。两者的区别在于后者获得的宽度是紧紧的贴着字体,前者是左右会多出一点点宽度。这里采用getTextBounds来实现。直接看代码吧public void setAutoTextSize(){ float width=textView.getWidt
2017-08-16 18:39:31
1282
原创 浅谈activity的创建与DecorView的创建加载
前言在Android开发中,相信接触最多的就是activity以及view,并且很多人都能熟练的运用,但很多人还是会对activity正式创建到view的加载这一流程感到迷惑,本文从源码的角度简单谈谈这一过程view加载decorview首先看看view是如何将decorview加载进窗体中的,至于decorview是什么等下在说。在启动一个activity的时候,会调用ActivityThread
2017-07-20 16:42:01
590
原创 使用picasso设置背景时的问题
在使用picasso给一些不是imageview的控件设置背景的时候,可以用Picasso.with(getActivity()).load(url).into(new Target());来给view设置背景,具体如下 Picasso.with(getActivity()).load(url).into(new Target() { @Override
2017-07-20 13:59:42
1074
原创 webview加载https地址图片显示不出来问题
最近遇到个问题,API21之后的手机webview加载https页面,加载不出来页面中的http地址图片,利用其他手机查看了一下报出https地址使用了http的资源图片的警告,因此猜测在https地址中只能引用安全的https资源,所以可以通过一下设置来做到加载显示https图片 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
2017-07-17 10:18:43
1421
原创 属性动画设置addListener后onAnimationStart不执行
遇到个问题,当调用属性的动画的时候设置addListener后,想要在onAnimationStart执行时做些操作,但是发现却只执行了onAnimationEnd,这尼玛就操蛋了,具体原因还不清楚,但是给属性动画设置一个延迟值就可以了* objectAnimator.setStartDelay(time);*,当time不为0的任意值时回调可以正常执行,这里先记一下,以后慢慢探索
2017-06-20 17:49:40
4059
1
原创 仿直播点赞动画
前一段时间感觉直播很火,因此我就下了七八个直播软件去看了,不要问我为啥下这么多,我会告诉你我想看看哪个平台的妹子颜值高吗,好吧最终喜欢上看映客的一个妹子。妹子歌唱的很好听可惜屌丝的我涮不起礼物,只能在屏幕下方狂点赞了。好了这次当然不是讨论直播平台的妹子,而是看下直播软件点赞的效果怎样实现的。 说一下思想吧,首先利用属性动画的放大效果让生成的图片不至于太突兀的显示,接着让生成的图片沿着三阶贝塞尔曲线
2017-04-13 10:39:02
1089
原创 viewpager切换效果
经常看到一些应用使用viewpager切换页面时效果非常炫酷,其实在Android中viewpager提供了一个方法用于设置页面切换时的效果setPageTransformer,然后重写void transformPage(View page, float position)就可以实现。 参数 page表示动画作用在当前的页面 position:0表示当前页面,1表示当前页面的右边一个页面,-1
2017-04-11 17:06:05
664
原创 viewpager实现循环轮播
viewpager实现循环轮播在网上看到很多利用viewpager实现轮播都是通过设置一个很大的值,让viewpager开始显示在这个数值区间的中间,但这种轮播个人感觉不是真正的轮播,因此自己实现了一个轮播的效果。大致思路是这样的,假如有5张图adcde是要轮播展示的,这时创建一个新的集合eadcdea,然后再让viewpager设置当前展示第一张图,也就是显示a。这样当往左滑时显示的是e,此时设置
2017-04-05 16:08:49
1032
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅