Android
cj_286
相信自己!
展开
-
插件化的原理分析及实现
学习插件化前需要了解类加载器、反射及动态代理等基本知识技术方案:1.宿主apk和插件apk都是使用PathClassLoader加载,合并宿主和插件的ClassLoader2.宿主apk资源和插件apk资源是隔离的,重写Activity的getResources和getAssets3.Hook IActivityManager.startActivity和ActivityThre...原创 2019-12-23 14:28:47 · 2150 阅读 · 0 评论 -
带有动态圆环的圆形图片控件DynamicAvatarView
效果图现在大部分的app上难免会使用到圆形头像,所以今天我给大家分享一个单独使用的,并且周围带有圆环动画的花哨圆形头像控件,本控件是在圆形头像控件基础上实现的,只是在其周围再画一些不同大小的圆而已,就可以实现如图的效果圆形头像的基本原理是将设置的资源文件转化成Bitmap,然后通过BitmapShader类将Bitmap成为Paint的渲染器,然后在onDraw()中通过canva原创 2016-10-17 15:25:04 · 2926 阅读 · 0 评论 -
RecyclerView下拉刷新和上拉加载更多
效果图,第一次做gif,捣鼓了半天,效果做的不好,请谅解谷歌在v4包下提供了一个SwipeRefreshLayout来实现RecyclerView的下拉刷新,但是此类并不提供上拉加载更多的一个功能,网上有很多的博客实现了上拉加载,但是上拉的效果图和之前的一样,今天我就实现类似于SwipeRefreshLayout刷新的效果图。圆形进度条的实现类MaterialProgressDra原创 2016-10-09 15:10:15 · 4304 阅读 · 3 评论 -
成败得失
成败得失...原创 2016-10-09 14:49:25 · 494 阅读 · 0 评论 -
Android 7.0图片裁剪问题
现在的App上都会有用户头像或商品图片等,而这些图片一般都是正方形且大小特别小的,要想得到此类的图片就要用到Android系统自带的图片裁剪功能,蒋拍照后的图片选择用户想要的地方进行裁剪。图片裁剪在不同系统版本上应注意的问题,下面就来分析在不同版本上的裁剪代码安卓7.0之前图片裁剪代码File temp = new File(sHeadPath , IMAGE_FILE_NAME);startP...原创 2018-03-08 14:22:04 · 1069 阅读 · 0 评论 -
NDK图片压缩-libjpeg
使用十分简单,添加压缩工具aar,一句语句实现批量压缩图片Android Studio不会添加arr的请移步:https://www.cnblogs.com/zhaoyanjun/p/5776114.htmlList<String> pics = CompressImageUtil.compressPictures(paths, "压缩后图片所保存的路径");一句...原创 2018-04-29 00:54:58 · 505 阅读 · 1 评论 -
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugKotlin'.
Andoird 工程中java和kotlin混合开发的时候,遇到了一个app:compileDebugKotlin问题,百度了几种解决方案都没用,在这里记录一下,出现这种问题可能是工程中有代码报错,可气的是加入kotlin之后,有的错它不提示,气人不。解决方案只需要在gradle -> app ->Tasks-> build -> build 执行一下就会出现具体的错误...原创 2019-04-09 19:32:35 · 5693 阅读 · 0 评论 -
代理模式
静态代理public interface IBank { /** * 办理银行卡 */ void applyBank();}/** * 被代理类 */public class Man implements IBank{ @Override public void applyBank() { System.out....原创 2019-12-09 17:50:03 · 278 阅读 · 0 评论 -
安卓的三种动画,帧动画,补间动画,属性动画
在安卓开发中,经常会使用到一些动画,那么在开发中,如何使用这些动画了帧动画:不是针对View做出一些形状上的变化,而是用于播放一张张的图片,例如一些开机动画补间动画(View动画):如果View只做一些动画,并不对View做点击或触控的一些操作,可以使用补间动画,因为不见动画,并不会改变View的位置,只是做一些渲染属性动画:如果对View不仅做一些动画操作,也对View做一些原创 2016-11-03 13:42:20 · 994 阅读 · 0 评论 -
高仿QQ的个性名片
中间的圆形头像和光环波形讲解请看:http://blog.csdn.net/cj_286/article/details/52839036周围的气泡布局,因为布局RatioLayout是继承自ViewGroup,所以布局layout就可以根据自己的需求来布局其子view,view.layout(int l,int t,int r,int b);用于布局子view在父ViewGroup中的位置(原创 2016-11-03 15:26:02 · 5340 阅读 · 4 评论 -
流式布局FlowLayout
图1 图2流式布局的应用在很多的app上都可以看到,尤其是在一些购物类的app上,流式布局大致的布局原理就是先在一行上显示,一行显示不下了,就换行到下一行继续显示。它类似于LinearLayout的horizontal和vertical的结合体。原创 2016-11-08 15:38:52 · 1300 阅读 · 0 评论 -
Dagger2 Component讲解
Error:(14, 1) 错误: @com.cj.dagger2.di.scope.ActivityScope com.cj.dagger2.di.component.ActivityComponent depends on more than one scoped component:@Singleton com.cj.dagger2.di.component.AppComponent@com.cj.dagger2.di.scope.ServiceScope com.cj.jian.dagger2.原创 2017-09-06 13:20:52 · 782 阅读 · 0 评论 -
Volley源码分析
在进行网络请求时,相信大家都用过Volley,Volley是Google推出来的网络访问框架,它内部仅仅是对HttpUrlConnection和HttpClient的进一步封装,使得网络请求变得简单,而且非常适合频繁的小数量数据的网络请求,使用起来非常简单,三句话就可以搞定网络请求,仅仅会使用还不行,现在我就来带你分析一下Volley的实现原理。先看看使用//创建请求队列RequestQueu原创 2017-03-12 17:17:14 · 360 阅读 · 0 评论 -
HTTPS全面解析
百度百科对https的介绍:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据原创 2017-02-15 14:21:13 · 9282 阅读 · 0 评论 -
不同Context对象创建的LayoutInflater对象也不同
创建LayoutInflater对象,根据所传的上下文对象不同,创建出来的LayoutInflater对象也不同,在不同Activity中创建的LayoutInflater对象也不同,先来看一下, Activity中的获取LayoutInflater对象及打印的对象地址LayoutInflater.from(this); com.android.internal.policy.impl.原创 2017-02-07 19:05:49 · 1143 阅读 · 0 评论 -
RecyclerView三种显示方式的下拉刷新和上拉加载更多
有关RecyclerView的类似SwipeRefreshLayout的上拉加载更多,我写了一篇博客http://blog.csdn.net/cj_286/article/details/52767070但是之前写的那个有一点点的小问题,如果上拉刷新,刷新小图标还没有移动到刷新位置,刷新数据就已经获取到,并且调用了setRefreshing(false),在setRefreshing(fals原创 2017-01-06 09:50:06 · 3229 阅读 · 0 评论 -
三星手机拍照强制切换到横屏及照片旋转问题
最近在做项目,项目里面有拍照上传的功能,无非就是吊起系统拍照功能,然后获取所拍照的地址,然后上传即可。但是当我无意间拿了一部三星手机装了App之后,当使用拍照功能的时候,拍完之后,界面并没有出现所拍的照片,之后才知道是三星手机在拍照的时候会强制切换到横屏,导致生命周期重走了,所以拍出来的照片所保存的地址也跟着没有了,然后我在清单文件中配置了该Activity的android:configChang原创 2016-12-17 20:49:31 · 4514 阅读 · 0 评论 -
权限检测
在安卓6.0之后有一些权限是要在运行的时候,当用到了该权限的时候,提示用户是否允许该权限,如果用户允许才开始使用该权限,如果用户拒绝,就使用不了相应的权限,那么问题来了,用户拒绝后,再次使用该功能,如何去检测是否拥有该权限呢,如检测出没有如何去设置呢?检测是否注册了该权限PackageManager pm = context.getPackageManager(); boolean原创 2016-11-23 13:52:07 · 630 阅读 · 0 评论 -
可伸缩的文本控件ExpandTextView
今天所讲述的是一个比较常见的一个功能模块,可伸缩的文本控件,可以用于显示商品的详情信息,但是为了节省空间,可以先让详情信息显示一部分,如果用户要看全部信息,只要点击展开,商品的详情信息就全部展示出来,如果用户看完之后,还可以点击收缩,把详情信息收缩起来,原创 2016-11-09 11:14:40 · 1412 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHe
在开发过程中,有的时候引入了多个三方库.在调用的时候会出现版本对应不上的原因,需要强制版本号统一解决办法,在app和Module: Library的build.gradle添加如下代码configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details ->原创 2017-12-19 18:00:45 · 5706 阅读 · 0 评论