
IT
文章平均质量分 77
csc_1024
这个作者很懒,什么都没留下…
展开
-
仿抖音加载动画(两个小球转动)效果
经常玩抖音的小伙伴肯定熟悉抖音的加载效果,但是如何实现的呢?先上效果图:是不是感觉很不错呢?接下来直接上代码:1、先创建一个attr.xml文件夹用来自定义属性:<?xml version="1.0" encoding="utf-8"?><resources> <!--仿抖音Loading--> <declare-...原创 2019-05-08 16:48:28 · 4075 阅读 · 0 评论 -
水波纹效果
项目中需要使用到的水波纹效果,效果图如下:代码如下:/** * 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 · 249 阅读 · 0 评论 -
数字滚动效果
数字滚动的效果,在网页中非常非常的常见。老规矩上图:OK搞定,注意是Kotlin编写。有兴趣下载看看:https://github.com/ChiShengCan/RollingNumber原创 2018-05-10 16:54:49 · 465 阅读 · 0 评论 -
Android优化工具
1. LeakCanaryLeakCanary用于内存泄露检测,并友好提示给开发者,便于分析和修改。GitHub:点击打开链接LeakCanary中文使用说明:点击打开链接LeakCanary集成后会在Activity.onDestory()后会自动监测Activity的内存泄露,仍需要在Fragment.onDestory()后主动监测,保证其工作。dump耗时较长,需要耐心转载 2018-04-04 12:09:54 · 441 阅读 · 0 评论 -
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 · 1173 阅读 · 1 评论 -
Android 全局Dialog
实现思路:思路就是通过非 Activity 的 Context 引用来启动一个透明 activity,然后使用这个 activity 来显示一个 dialog开发 android 的都因该知道,非 Activity 的 Context 引用是不可以显示一个 Dialog 的,所以在查看一些第三方发现内部是通过启动一个 Activity 来显示一个 Dialog。实现的过程:1、创建一个Activi...原创 2018-03-28 11:41:00 · 501 阅读 · 0 评论 -
RecyclerView加载更多(无Foot)
public abstract class LoadMoreListener extends RecyclerView.OnScrollListener { //声明一个LinearLayoutManager private LinearLayoutManager mLinearLayoutManager; //当前页从0开始 private int curr原创 2018-04-02 18:53:34 · 983 阅读 · 0 评论 -
View的滑动
1、使用scrollTo/scrollBy区别(我们先看源码,看一下它们的区别):从上面我们可以发现,scrollBy是内部调用了scrollTo的方法,实现了基于当前位置的相对滑动。而scrollTo则是实现了“绝对滑动”。需要注意的一点就是mScrollX/mScrollY这两个属性的规则,mScroll表示的是view的左边缘到view的内容左边缘的水平距离,NScrollY原创 2018-03-27 14:44:53 · 200 阅读 · 0 评论 -
View的VelocityTracker、GestureDetector和Scroller
1、VelocityTracker速度追踪器,用于跟踪手指在滑动的过程中的速度,包括水平和竖直方向的速度。使用过程: @Override public boolean onTouchEvent(MotionEvent event) { /****************速度追踪器*******************/ VelocityTrack原创 2018-03-27 11:39:03 · 250 阅读 · 0 评论 -
弄清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 · 276 阅读 · 0 评论 -
自定义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 · 220 阅读 · 0 评论 -
仿抖音点赞效果
玩过抖音的人应该都知道抖音的点赞效果挺酷炫的,而作为码农我们一定想知道它是怎么实现的。先上效果图:实现原理非常的简单,直接上代码:/** * Created by csc on 2018/6/11. * information:仿抖音点赞功能 */class Love(context: Context) :RelativeLayout(context){ var mContext...原创 2018-06-11 14:26:11 · 8568 阅读 · 1 评论 -
RecyclerView梯度效果的滑动
感觉好久没有写博客了,又来搞事情。直接向上图,哈哈,这个效果是不是很酷呢(自认为挺酷的这个效果)。其实这个非常的简单,就是覆写LinearLayoutManager,然后RecyclerView.setLayoutManager(manager)就OK了,是不是非常简单,上代码(Kotlin)class EchelonLayoutManager(context:Context) : LinearL...原创 2018-06-05 14:19:59 · 407 阅读 · 0 评论 -
弧形ViewPager
我们常在电商平台看到的Banner是弧形的,这是怎么实现的呢?其实实现非常的简单,请接着往下看。老规矩,先上效果图:是不是这样的Banner很有新鲜感呢?/** * Created by csc on 2018/6/13. * information:有弧度ImageView(注意使用的时候需要灵活使用,主要的是适当的修改一下偏移量offset即可满足需求) */class ArcImag...原创 2018-06-14 11:14:19 · 967 阅读 · 2 评论 -
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 · 3384 阅读 · 0 评论 -
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 · 443 阅读 · 0 评论 -
Activity设置进场动画时,出现黑屏想象
1、如何设置进出场动画:MainActivity跳转到PublishActivity,PublishActivity从底部弹出进场:设置PublishActivity从上往下出场:就这样搞定,但是会出现一个问题,当进场的时候会出现黑屏想象,解决的办法是:给两个Activity设置Theme: ...原创 2019-01-22 17:53:41 · 1110 阅读 · 0 评论 -
Android 今日头条适配方案,一篇你就懂
这个月在 Android 技术圈中 屏幕适配 这个词曝光率挺高的,为什么这么说呢?因为这个月陆续有多个大佬发布了屏幕适配相关的文章,公布了自己认可的屏幕适配方案。 上上个星期 Blankj 老师发表了一篇力挺今日头条屏幕适配方案的 文章(https://juejin.im/post/5b6250bee51d451918537021),提出了很多优化的方案,并开源了相关源码。 上个星...原创 2019-01-18 18:26:32 · 2600 阅读 · 0 评论 -
Glide 加载部分圆角图片
在App开放中经常遇到设置ImageView为部分圆角的情况,但是Glide又没有提供这个方法,该怎么办呢?直接上代码!/** * @author csc * @date 2019-01-18 * Todo 设置图片部分圆角 */public class RoundedCornersTransform implements Transformation<Bitmap> ...原创 2019-01-18 17:54:06 · 4433 阅读 · 3 评论 -
自定义进度条
App中都用版本更新的选项,版本更新页面中都有进度条的UI。今天我们就通过自定义View,实现以下我们自定义的Progress。当然顺便复习以下自定义View。其实原理非常的简单,先上效果图:进度条的代码如下:/** * @author csc * 2018-12-26 * Todo 数字进度条 */public class NumberProgressBar ex...原创 2018-12-27 17:28:11 · 382 阅读 · 0 评论 -
RecyclerView实现Item居中效果(仿猫眼美团电影选择效果)
一、实现的效果1、滑动的时候让每一个Item保持在中间2、点击某一个Item让其滚动到中间3、实际实现的效果如下:点击一次自动滚动居中,再次点击跳转到详情页 二、实现的思路:1、每一次的滑动都让图片保持在中间,其实RecyclerView24.2.0版本以后,Google已经提供一个SnapHelper的辅助类,可以实现每一次滚动结束保持居中。具体用法就是:Li...原创 2018-11-17 15:34:25 · 6373 阅读 · 1 评论 -
Glide加载圆角图片的方法
现在在市面上很多App的UI设计都会出现圆角图片的显示。Glide本身也提供了圆角图片的加载方式。但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角。这样的需求是该怎么实现呢?Glide有对外暴露一个方法,可以在图片显示前,对图片作转换处理——就是Transformations。有关此方面的文字,小可爱们可以看看这篇——Glide - 自定义转换。本文的RoundCorner就是继承了...原创 2018-07-06 18:41:10 · 26916 阅读 · 8 评论 -
软键盘遮挡问题
要实现如上图效果: 注意不是将页面整体滑上去,而是让页面上滑一部分,以达到不遮挡登录按钮的效果实现思路:1、监听键盘的弹起与收回;2、滑动1、监听键盘的弹起与收回首先在Manifest文件中对相应的Activity配置属性windowSoftInputMode,让Activity能够在键盘弹起和收回时有所响应。<activity android:name=".ui.activitys...原创 2018-06-20 16:58:10 · 309 阅读 · 0 评论 -
Android基础:Activity的启动模式
1、Activity启动提供了4种方式Standard:标准模式SingleTop:栈顶复用模式SingleTask:栈内复用模式SingleInstance:单例模式2、关于Activity的管理方式:任务栈。任务栈采用的结构是:先进后出3、关于启动模式的总结(1)Standard特点:1)Activity的默认启动模式2)每启动一次Act原创 2018-02-28 16:21:43 · 194 阅读 · 0 评论 -
补间动画
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 · 353 阅读 · 0 评论 -
Android适配-ROM适配
一、手机平台相关文档(一)小米1、小米开发者文档2、开发人员必看:《小米应用开发者文档》在这里可以找到在小米手机上开发、分发应用的相关文档~3、常见问题4、小米帐号场景化登录5、技术文档(二)华为华为开发者文档(三)魅族魅族开发者文档(四)三星三星开发者文档(五)oppooppo开发者文档oppo手机的R9系列和A系列的5.1系统存在严重的bug,类似以下这种的gc导致的释放超时很多。(六)viv...原创 2018-03-10 18:19:37 · 5613 阅读 · 0 评论 -
标题栏的颜色渐变效果
标题栏的颜色渐变我相信这个效果很常见了,淘宝就有。因为最近的项目中就有这个效果,所以也给大家写一写,希望有帮助。不多说,先上我项目的效果图:1、先覆写一下ScrollViewpublic class ObservableScrollView extends ScrollView { private ScrollViewListener scrollViewListen原创 2018-01-25 14:45:25 · 2145 阅读 · 0 评论 -
RxJava2.0的使用:操作符(一)
1、创建被观察者以及发射一个Integer事件 //创建被观察者 Observable.create( //创建发射器 new ObservableOnSubscribe() { @Override public void原创 2018-01-29 11:41:59 · 319 阅读 · 0 评论 -
Android仿知乎广告
最近在我三星手机上看到了很有意思的图片广告,听说是模仿知乎创意广告。来回看了看,觉得挺有意思,就开始动手写写这个小效果。很简单,一点也不难实现。不多说,先上图:直接贴代码,不懂看注释:1、重写ImageView/** * Created by csc on 2018/1/24. * explain: */public class AdsImagView extends原创 2018-01-24 16:29:23 · 421 阅读 · 0 评论 -
Rxjava版本问题
在使用RxJava的时候,有时因为版本问题报下面的错误,为啥呢?找也找不到 com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties原创 2017-12-28 10:03:26 · 369 阅读 · 0 评论 -
Android 跳转到新浪微博
/** * 调起新浪微博客户端的发送微博界面,完成发送微博工作 * @param activity * @param content 微博内容 */ public static void openSendWeibo(Activity activity,String content){ if(activity==null||null==原创 2017-11-25 17:10:57 · 6501 阅读 · 1 评论 -
引入三方库出现android.support.v4.animation.AnimatorCompatHelpe
Android开发的时候,我们极有可能引入了多个三方库,但是当我们导入的时候会出现如下错误:Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.animation.AnimatorCompatHelper"。造成这种原因是因为:在调用的时候会出现版本对应不上的原因。解决的办法只要在bu原创 2017-11-22 15:39:49 · 2826 阅读 · 1 评论 -
android 架包依赖过多问题:com.android.dex.DexIndexOverflowException
有可能的的项目写的好好的,有一天突然想Build一下apk到其他手机上测试一下,但是直接build失败,出现下面的原因:Error:Execution failed for task ':App:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android原创 2017-11-06 12:18:55 · 536 阅读 · 0 评论 -
Android微信支付集成和踩过的坑
近公司需要微信支付,所以不得不去看看微信支付文档。但是你懂得,那文档写的真带劲,看不懂。我直接放弃,开始集成。但是调起微信支付的时候:结果码为-1,心里一惊,肯定哪里错了,就开始找坑。所以把自己解决的过程分享给大家,让集成微信支付成为很容易的一件事。1、前期的准备:把App安装到手机,然后去微信平台下载签名工具:https://open.weixin.qq.com/zh_CN/htmledit原创 2017-10-26 16:49:31 · 4339 阅读 · 0 评论 -
Android实现全景图
在玩头条的时候,现在我们会发现有很多的全景图的广告这样快看起来非常的酷。今天就来说说这个小效果的实现。我了解的有2种方式的实现:1、Three.js,和前端交互实现的2、依赖库:OpeanGL哈哈我就挑个简单的方式来实现,选择第二种方式。(1)、在build。gradle种添加依赖库:allprojects { repositories {原创 2018-02-01 20:17:12 · 6134 阅读 · 3 评论 -
登录页的图片切换
不知道大家有没有发现,好多App在登录页都有图片的切换效果,增加视觉上的效果,让用户觉得这款App不会很单调。我记得QQ有一个版本就有。还是先上图,其实这个直接放Gif就行。而我直接用属性动画也是可以的,这样能够减少App的体积。不多说直接上代码:<RelativeLayout xmlns:android="http://schemas.android.com/apk/re原创 2018-01-26 14:29:55 · 303 阅读 · 0 评论 -
Retrofit请求参数为对象嵌套对象以及Android如何抓包
最近项目中有个接口是对象嵌套对象,当时看到的时候有点懵逼,因为平常的接口都是表单形式就行了,没有这么复杂的,我先把我的接口给大家看看,想想有没有思路:{ "ThemeType": 0, "AreaId": 0, "SPoint": "string", "EPoint": "string", "MinPrice": 0, "MaxPrice": 0, "KeyWord原创 2018-01-26 16:05:28 · 4310 阅读 · 0 评论 -
Android适配-版本适配
一、同一个api在不同版本都存在,只是api的一些接口方法有变更。这种情况是最好处理的,只要对版本号做判断,对应的系统版本用相应的api方法就好了。为了好维护,建议做一个简单的封装。举例说明如下:比如Notification在不同版本的兼容,举例如下:首先打开谷歌官方文档,看看文档里面的一些说明:Notification官方文档1.Notification这个类是added in API leve...原创 2018-03-10 18:17:41 · 3954 阅读 · 0 评论 -
Android适配—屏幕适配
前言总结一下Android适配主要表现在以下 3个方面:1、屏幕适配。(网上讲的最多的就是这个。) 由于Android碎片化严重,导致开发中一套代码在不同手机上运行起来效果不是很好,兼容性不是很好,这就需要对不同分辨率,不同屏幕大小的手机做屏幕适配。2、版本适配。 不同的系统版本api有所变更,既要适配高版本,也要做到兼容低版本。3、ROM适配。(这个是最难的,工作量也是最大的,如果没有不同版本手...原创 2018-03-10 18:09:38 · 817 阅读 · 0 评论 -
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 · 216 阅读 · 0 评论