自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 仿抖音加载动画(两个小球转动)效果

经常玩抖音的小伙伴肯定熟悉抖音的加载效果,但是如何实现的呢?先上效果图:是不是感觉很不错呢?接下来直接上代码:1、先创建一个attr.xml文件夹用来自定义属性:<?xml version="1.0" encoding="utf-8"?><resources> <!--仿抖音Loading--> <declare-...

2019-05-08 16:48:28 3868

原创 java.net.UnknownServiceException: CLEARTEXT communication to *** not permitted by networ

当大家遇到这个问题的时候应该和我一样一脸懵逼,我不就改了一下:targetSdkVersion = 28吗,怎么就报错了呢?其实问题就出现在这。出现这个错误的原因肯定是因为的接口是 http,而Android Pie系统上默认使用的是Https。怎么样解决这个问题呢?方法一:把targetSdkVersion 改成小于 28方法二:把接口改成https方法三:如果你都不想使用上面...

2019-03-18 14:52:43 3315

原创 Dagger 2 的基本使用

1、Dagger 2 的依赖库:compile 'com.google.dagger:dagger:2.11'annotationProcessor 'com.google.dagger:dagger-compiler:2.11'2、我们先根据MVP模式举个栗子,实现的功能就是完一个Activity中注入一个Presenter,然后通过Presenter来设置TextView的显示内容...

2019-03-06 15:46:03 378

原创 Activity设置进场动画时,出现黑屏想象

1、如何设置进出场动画:MainActivity跳转到PublishActivity,PublishActivity从底部弹出进场:设置PublishActivity从上往下出场:就这样搞定,但是会出现一个问题,当进场的时候会出现黑屏想象,解决的办法是:给两个Activity设置Theme:  ...

2019-01-22 17:53:41 1042

原创 Android 今日头条适配方案,一篇你就懂

这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适配相关的文章,公布了自己认可的屏幕适配方案。 上上个星期 Blankj 老师发表了一篇力挺今日头条屏幕适配方案的 文章(https://juejin.im/post/5b6250bee51d451918537021),提出了很多优化的方案,并开源了相关源码。 上个星...

2019-01-18 18:26:32 2537

原创 Glide 加载部分圆角图片

在App开放中经常遇到设置ImageView为部分圆角的情况,但是Glide又没有提供这个方法,该怎么办呢?直接上代码!/** * @author csc * @date 2019-01-18 * Todo 设置图片部分圆角 */public class RoundedCornersTransform implements Transformation&lt;Bitmap&gt; ...

2019-01-18 17:54:06 4355 3

原创 自定义进度条

    App中都用版本更新的选项,版本更新页面中都有进度条的UI。今天我们就通过自定义View,实现以下我们自定义的Progress。当然顺便复习以下自定义View。其实原理非常的简单,先上效果图:进度条的代码如下:/** * @author csc * 2018-12-26 * Todo 数字进度条 */public class NumberProgressBar ex...

2018-12-27 17:28:11 345

原创 RecyclerView实现Item居中效果(仿猫眼美团电影选择效果)

一、实现的效果1、滑动的时候让每一个Item保持在中间2、点击某一个Item让其滚动到中间3、实际实现的效果如下:点击一次自动滚动居中,再次点击跳转到详情页 二、实现的思路:1、每一次的滑动都让图片保持在中间,其实RecyclerView24.2.0版本以后,Google已经提供一个SnapHelper的辅助类,可以实现每一次滚动结束保持居中。具体用法就是:Li...

2018-11-17 15:34:25 5987 1

原创 Glide加载圆角图片的方法

现在在市面上很多App的UI设计都会出现圆角图片的显示。Glide本身也提供了圆角图片的加载方式。但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角。这样的需求是该怎么实现呢?Glide有对外暴露一个方法,可以在图片显示前,对图片作转换处理——就是Transformations。有关此方面的文字,小可爱们可以看看这篇——Glide - 自定义转换。本文的RoundCorner就是继承了...

2018-07-06 18:41:10 26805 8

原创 软键盘遮挡问题

要实现如上图效果: 注意不是将页面整体滑上去,而是让页面上滑一部分,以达到不遮挡登录按钮的效果实现思路:1、监听键盘的弹起与收回;2、滑动1、监听键盘的弹起与收回首先在Manifest文件中对相应的Activity配置属性windowSoftInputMode,让Activity能够在键盘弹起和收回时有所响应。&lt;activity android:name=".ui.activitys...

2018-06-20 16:58:10 253

原创 弧形ViewPager

我们常在电商平台看到的Banner是弧形的,这是怎么实现的呢?其实实现非常的简单,请接着往下看。老规矩,先上效果图:是不是这样的Banner很有新鲜感呢?/** * Created by csc on 2018/6/13. * information:有弧度ImageView(注意使用的时候需要灵活使用,主要的是适当的修改一下偏移量offset即可满足需求) */class ArcImag...

2018-06-14 11:14:19 905 2

原创 仿抖音点赞效果

玩过抖音的人应该都知道抖音的点赞效果挺酷炫的,而作为码农我们一定想知道它是怎么实现的。先上效果图:实现原理非常的简单,直接上代码:/** * Created by csc on 2018/6/11. * information:仿抖音点赞功能 */class Love(context: Context) :RelativeLayout(context){ var mContext...

2018-06-11 14:26:11 8447 1

原创 水波纹效果

项目中需要使用到的水波纹效果,效果图如下:代码如下:/** * Created by csc on 2018/6/7. * information:使用贝塞尔曲线(二阶)实现水波纹效果 */class WaveView(context: Context) : View(context) { lateinit var mPaint: Paint lateinit var ...

2018-06-11 11:42:31 200

原创 RecyclerView梯度效果的滑动

感觉好久没有写博客了,又来搞事情。直接向上图,哈哈,这个效果是不是很酷呢(自认为挺酷的这个效果)。其实这个非常的简单,就是覆写LinearLayoutManager,然后RecyclerView.setLayoutManager(manager)就OK了,是不是非常简单,上代码(Kotlin)class EchelonLayoutManager(context:Context) : LinearL...

2018-06-05 14:19:59 351

原创 数字滚动效果

数字滚动的效果,在网页中非常非常的常见。老规矩上图:OK搞定,注意是Kotlin编写。有兴趣下载看看:https://github.com/ChiShengCan/RollingNumber

2018-05-10 16:54:49 392

原创 上下列表联动

项目中实现的效果:

2018-05-09 17:58:34 578 1

转载 Android优化工具

1. LeakCanaryLeakCanary用于内存泄露检测,并友好提示给开发者,便于分析和修改。GitHub:点击打开链接LeakCanary中文使用说明:点击打开链接LeakCanary集成后会在Activity.onDestory()后会自动监测Activity的内存泄露,仍需要在Fragment.onDestory()后主动监测,保证其工作。dump耗时较长,需要耐心

2018-04-04 12:09:54 390

原创 RecyclerView加载更多(有Foot)

1、设置布局:RecyclerView的Item的布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" an

2018-04-03 19:27:01 1115 1

原创 RecyclerView加载更多(无Foot)

public abstract class LoadMoreListener extends RecyclerView.OnScrollListener { //声明一个LinearLayoutManager private LinearLayoutManager mLinearLayoutManager; //当前页从0开始 private int curr

2018-04-02 18:53:34 932

转载 弄清support支持库,以及v4 v7重复依赖问题深究

1为何提供支持库google为啥要弄这么多支持库,直接放到sdk里面不好么? 参阅官方文档有下面3个原因:1.向后兼容如,我们开的App需要支持的minSdkVersion=9,targetSdkVersion=11,在程序里使用了android 3.0 (API level 11)提供的ActionBar类,使用compileSdkVersion=11成功编译出apk。在android 3.0的...

2018-03-30 10:44:15 239

原创 Android 全局Dialog

实现思路:思路就是通过非 Activity 的 Context 引用来启动一个透明 activity,然后使用这个 activity 来显示一个 dialog开发 android 的都因该知道,非 Activity 的 Context 引用是不可以显示一个 Dialog 的,所以在查看一些第三方发现内部是通过启动一个 Activity 来显示一个 Dialog。实现的过程:1、创建一个Activi...

2018-03-28 11:41:00 452

原创 View的滑动

1、使用scrollTo/scrollBy区别(我们先看源码,看一下它们的区别):从上面我们可以发现,scrollBy是内部调用了scrollTo的方法,实现了基于当前位置的相对滑动。而scrollTo则是实现了“绝对滑动”。需要注意的一点就是mScrollX/mScrollY这两个属性的规则,mScroll表示的是view的左边缘到view的内容左边缘的水平距离,NScrollY

2018-03-27 14:44:53 162

原创 View的VelocityTracker、GestureDetector和Scroller

1、VelocityTracker速度追踪器,用于跟踪手指在滑动的过程中的速度,包括水平和竖直方向的速度。使用过程: @Override public boolean onTouchEvent(MotionEvent event) { /****************速度追踪器*******************/ VelocityTrack

2018-03-27 11:39:03 215

原创 自定义View中的Paint和Path

1、关于设置路径1)方法:linTo的使用public class BaseView extends View { //画笔 private Paint mPaint; //路径 private Path mPath; //覆写的方法 public BaseView(Context context, AttributeSet at

2018-03-19 14:49:14 186

原创 补间动画

1、平移动画(translate)方法1:在XML代码中设置1)在路径 res/anim/创建xml文件:translate_animation.xml  2)代码如下:translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="3000"

2018-03-12 14:13:42 315

原创 Android适配-ROM适配

一、手机平台相关文档(一)小米1、小米开发者文档2、开发人员必看:《小米应用开发者文档》在这里可以找到在小米手机上开发、分发应用的相关文档~3、常见问题4、小米帐号场景化登录5、技术文档(二)华为华为开发者文档(三)魅族魅族开发者文档(四)三星三星开发者文档(五)oppooppo开发者文档oppo手机的R9系列和A系列的5.1系统存在严重的bug,类似以下这种的gc导致的释放超时很多。(六)viv...

2018-03-10 18:19:37 5499

原创 Android适配-版本适配

一、同一个api在不同版本都存在,只是api的一些接口方法有变更。这种情况是最好处理的,只要对版本号做判断,对应的系统版本用相应的api方法就好了。为了好维护,建议做一个简单的封装。举例说明如下:比如Notification在不同版本的兼容,举例如下:首先打开谷歌官方文档,看看文档里面的一些说明:Notification官方文档1.Notification这个类是added in API leve...

2018-03-10 18:17:41 3872

原创 Android适配—屏幕适配

前言总结一下Android适配主要表现在以下 3个方面:1、屏幕适配。(网上讲的最多的就是这个。) 由于Android碎片化严重,导致开发中一套代码在不同手机上运行起来效果不是很好,兼容性不是很好,这就需要对不同分辨率,不同屏幕大小的手机做屏幕适配。2、版本适配。 不同的系统版本api有所变更,既要适配高版本,也要做到兼容低版本。3、ROM适配。(这个是最难的,工作量也是最大的,如果没有不同版本手...

2018-03-10 18:09:38 714

原创 自定义View Measure的过程

1、onMeasure什么时候回被调用?onMeasure方法的作用:测量控件的大小。当创建一个View的时候不需要测量这个控件的大小,只有将这个View放入到一个容器(父控件)中的时候才需要去测,而这个测量的方法就是父控件唤起调用的。当控件的父控件要放置这个子控件的时候,父控件会调用子控件的onMeasure方法询问子控件“你需要多大的尺寸啊?”,然后传入两个参数:widthMeasureSpe...

2018-03-09 18:22:10 309

原创 Android基础:Activity的启动模式

1、Activity启动提供了4种方式Standard:标准模式SingleTop:栈顶复用模式SingleTask:栈内复用模式SingleInstance:单例模式2、关于Activity的管理方式:任务栈。任务栈采用的结构是:先进后出3、关于启动模式的总结(1)Standard特点:1)Activity的默认启动模式2)每启动一次Act

2018-02-28 16:21:43 130

原创 AsycnTask

(1)作用:1、执行耗时操作2、实现工作线程与主线程之间的通信(2)示例:public class MainActivity extends AppCompatActivity { private Button mBtStart; private TextView mTvProgress; private ProgressBar mProgress; private...

2018-02-23 15:39:35 180

原创 RxJava2.0功能性操作符(五)

1、subscribe()作用:订阅,连接被观察者和观察者//创建观察者 Observable observable=Observable.create(new ObservableOnSubscribe() { @Override public void subscribe(@NonNull ObservableEmit

2018-02-07 19:55:55 375

原创 RxJava2中重要操作符在实际项目应用(六)

1、zip功能说明:合并从不同的数据源获取的数据(有两个接口),然后展示数据.我在项目中的应用是:将第三方广告接口返回的数据 夹杂 到自加平台返回的广告数据 并且展示出来。详情使用请参见:zip在项目中的使用2、flatMap作用:网络嵌套请求。我在项目中的应用:服务器出于安全考虑,一些接口需要传入token才能返回正确的数据。而token需要从另一个接口获得。这时

2018-02-06 17:04:30 277

原创 RxJava版本不一致

不知道有没有朋友和我一样会遇到下面的错误:Error:Execution failed for task ':rxjava:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.Duplic

2018-02-05 17:08:33 611

原创 RxJava2.0过滤操作符(四)

(2)ofType作用:筛选 特定数据类型数据实例:运行结果:(3)skip()跳关正序某个事件 /  skipLast() 跳过倒叙的某一

2018-02-02 19:38:21 307

原创 Android实现全景图

在玩头条的时候,现在我们会发现有很多的全景图的广告这样快看起来非常的酷。今天就来说说这个小效果的实现。我了解的有2种方式的实现:1、Three.js,和前端交互实现的2、依赖库:OpeanGL哈哈我就挑个简单的方式来实现,选择第二种方式。(1)、在build。gradle种添加依赖库:allprojects { repositories {

2018-02-01 20:17:12 6024 3

原创 RxJava2.0组合与合并操作符(三)

1、组合操作符(1)、组合多个观察者:concat() / concatArray()作用:组合多个 被观测者 一起发送数据,合并后 按发送顺序串行执行两者的区别:组合被观察者的数量,concat()组合被观察者 =5具体使用:Observable //创建组合操作符(concat必须,<=4个) .conc

2018-01-30 20:40:12 677

原创 RxJava2.0变换操作符(二)

1、转换操作符:①、Map(作用:数据类型色转换)//实现的功能:将Integer类型转换成String类型 Observable.create( //创建发射器 new ObservableOnSubscribe() { @Override

2018-01-30 10:27:33 269

原创 RxJava2.0的使用:操作符(一)

1、创建被观察者以及发射一个Integer事件 //创建被观察者 Observable.create( //创建发射器 new ObservableOnSubscribe() { @Override public void

2018-01-29 11:41:59 279

原创 Retrofit请求参数为对象嵌套对象以及Android如何抓包

最近项目中有个接口是对象嵌套对象,当时看到的时候有点懵逼,因为平常的接口都是表单形式就行了,没有这么复杂的,我先把我的接口给大家看看,想想有没有思路:{ "ThemeType": 0, "AreaId": 0, "SPoint": "string", "EPoint": "string", "MinPrice": 0, "MaxPrice": 0, "KeyWord

2018-01-26 16:05:28 4215

Android标题栏颜色渐变

随着屏幕的滚动,状态栏和标题栏的颜色渐变

2018-01-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除