Android 利用ViewDragHelper打造侧滑关闭控件
效果: 核心思想: 自定义ViewGroup控件,利用ViewDragHelper让此控件拥有滑动功能。 将此控件附加到每一个Activity。 代码很简单就不一一解释了,代码备注很详细,所以直接贴代码了: import android.app.Activity; import android.content.Context; import android.support.annotation.N…
效果: 核心思想: 自定义ViewGroup控件,利用ViewDragHelper让此控件拥有滑动功能。 将此控件附加到每一个Activity。 代码很简单就不一一解释了,代码备注很详细,所以直接贴代码了: import android.app.Activity; import android.content.Context; import android.support.annotation.N…
最近赶项目比较忙,趁周末补点文章。 效果预览: 开发需求: 这个弹窗一般用于新消息展示,需要是全局的,所以采用WindowManager来做,可以显示在其他应用之上。 一般消息弹窗会在几秒内消息,否则会影响用户体验,所以还需要延时关闭。 消息弹出后要给用户选择的机会,所以用户可以手动移除弹窗,这里采用手势来达到取消显示的目的。 撸码: 1.先撸一个类,构造传入上下文,因为待会会用。 public …
不得不说RecyclerView真的很强大,例如无限轮播Banner,滑动卡片等都有RecyclerView的版本,他们是怎么做的呢?答案是基于RecyclerView.LayoutManager,我们可以自定义RecyclerView.LayoutManager,然后控制RecyclerView内部Item的位置以及大小达到我们想要的效果,为了简单,我们先自定义一个RecyclerView.La…
场景:经常在项目中高频使用按钮,比如 完成、下一步等有圆角且有按下效果的Button 思路:写个自定义Button,编写自定义属性,方便在xml中设置圆角,颜色等属性,按下的效果一般是用shape写背景方式完成,为了方便,shape不在xml编写,改为代码编写。 1.编写自定义控件: public class ShapeButton extends AppCompatButton { public…
偶然间在SDK目录下看到IntentService这个类,于是使用了一番,就使用场景来说很多,比如APP启动时,做一些初始化操作,或者一些需要后台处理的耗时任务,看到这里你不要误会,因为IntentService并非在主线程运行,以下是源码,你也可以在Sdk\sources\android-26\android\app 目录下找到: /* * Copyright (C) 2008 The Andr…
因为RecyclerView越来越普及,使用场景也越来越多,所以在如此高频使用的情况下,分割线也是必不可少的,但是我们经常在不同的场景下使用,对分割线的需求也不一致,导致自己手动编写的分割线并不能满足日常需求,所以我比较常用的做法是在Item布局中编写分割线,久而久之还是觉得用着不方便,索性就写一个扩展性好一点的分割线吧。 使用示例: //线粗细1dp,线两边边距10dp,线颜色红色 rl.add…
记得以前还没有RecyclerView的时候,做拖拽排序很麻烦,而现在因为RecyclerView的诞生,很多复杂的操作都可以完美实现了,例如轮播、流式布局等等。 先写一个简单的RecyclerView例子,然后慢慢拓展吧。 public class MoveItemActivity extends AppCompatActivity { private RecyclerView rl; priv…
眼看6月到了,由于前段时间域名备案等原因,服务器关闭了差不多一个月,所以没更新文章,索性今天补一篇吧,准备写一个简单的自定义View,就拿进度条做这个需求吧,虽然简单,但是也包含了基本自定义View的几要素,比如自定义属性、重写测量、重写绘制等功能。 ## 需求分析: 1.进度通过绘制线条实现。 2.进度文字跟随当前进度实时变化,并非一直显示在固定位置。 3.控件未给出宽高属性时,我们需要给出默认…
自从Android推出Design后,就广受各位开发者的喜爱,因为以前很多高级特效都需要我们自己去写,而现在Design库内置类很多实用的控件,很多复杂的需求用设个库就能满足,记得以前写自定义控件就经常遇到触摸事件方面的问题,比如外层ViewGroup将事件拦截后,在通过某些特定操作后,将事件还给内部子View处理,这种事件处理就很麻烦,因为在一次事件中外部ViewGroup一旦拦截了事件,子类就…