自定义view 之多个引导层动画效果
来源:互联网 发布:免费服装库存软件 编辑:程序博客网 时间:2024/06/08 18:56
SupernatantView
- 如果我英文还可以的话这个应该叫做漂浮在上层的view—引导层
- 今天闲来无事看了网上的一些引导层案例总感觉如果不是很舒服,就是类似于很死板的显示和消失
- 我在想能不能弄点动画上去看着舒服一些 所以就有了以下的gif gif有点短但是没办法太长了github传不上去 不知道是不是我操作不太对
刚开始点击屏幕是没有反应的 因为我把点击事件拦截了 后面代码可以看得到
因为我们产品汪没有这样的需求 所以我有的地方写的不是很严谨 包括指示箭头在下方如果下方距离不够箭头显示的时候 我也没有做判断 只是把大体的意思写出来了 大家如果想更改 可以看里边的注释 (偷偷告诉你们里边注释贼多 不怕你看不懂)
step 1
继承view 重写构造方法 和 onTouchEvent 和 draw 方法
public SupernatantView(Context context) { this(context, null); } public SupernatantView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public SupernatantView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }
onDraw 方法
@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas);}
onTouchEvent方法
@Override public boolean onTouchEvent(MotionEvent event) {// return super.onTouchEvent(event);return true; //拦截点击事件 }
step 2
初始化画笔方法 单独抽取出来
private Paint createPaint(int paintColor, int alpha, int textSize, Paint.Style style, int linWidth) {Paint paint = new Paint(); //初始化画笔paint.setAntiAlias(true); //抗锯齿paint.setDither(true); //防抖动paint.setStrokeCap(Paint.Cap.ROUND); //笔触风格为圆角paint.setStrokeJoin(Paint.Join.ROUND); //结合处形状为圆角paint.setColor(paintColor); //设置颜色paint.setAlpha(alpha); //设置透明度paint.setTextSize(textSize); //设置文字大小paint.setStyle(style); //设置样式paint.setStrokeWidth(linWidth); //设置边宽度return paint; }
step 3
初始化各种数值 包括 屏幕的宽高 状态栏
public static int[] getScreenSize(Context context) {DisplayMetrics metrics = new DisplayMetrics();WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);windowManager.getDefaultDisplay().getMetrics(metrics);return new int[]{metrics.widthPixels, metrics.heightPixels}; } public static int getStatusBarHeight() {return Resources.getSystem().getDimensionPixelSize( Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android")); }
step 4
一些基本的方法包括获取view 的屏幕坐标,获取view 的 RectF 具体在代码里会有详细的注释 给你先看个图片 没错就是这么详细 哦哈哈哈~~~
step 5
就是重写onDraw方法了 再加上计算一些动态数据之类的 代码太多就不贴出来了 大家如果感兴趣可以看看
github风火轮:https://github.com/guanhaoran/SupernatantView
QQ 765307272
阅读全文
0 0
- 自定义view 之多个引导层动画效果
- Android之多个View同时动画
- andriod 自定义view动画效果
- 自定义view增加动画效果
- 自定义Toast效果,windows层添加view,多个Toast效果
- Android 自定义View动画效果进阶
- Android自定义View实现搜索动画效果
- 引导层动画
- Android自定义View 实现水波纹动画引导
- [View Controller切换效果] 自定义动画+交互式动画
- View层基础动画
- 《js动画效果》之多物体动画
- 《js动画效果》之多物体动画
- js动画效果之多物体动画
- 自定义view 类似QQ好友来消息的动画效果
- 为任意自定义的View隐藏时添加动画效果
- Android自定义View: 如何实现类钟摆的动画效果?
- Android实现带动画效果的自定义View
- MD5算法
- 使用formData给后台提交表单数据
- sizeof总结
- 【足球】为啥喜欢足球?
- 数字证书原理
- 自定义view 之多个引导层动画效果
- jQuery.raty.js星星评分插件的使用
- 侯晓迪论文之路
- React 组件基本使用(二)
- Myeclipse修改内存大小不足(报内存溢出或者内存太小)
- 算法分析——分治思想之快速排序
- 触摸java常量池
- 支付--支付宝APP支付
- CodeForces