Android自定义控件10----继承View实现水波纹效果
来源:互联网 发布:js小于或等于 编辑:程序博客网 时间:2024/05/11 05:27
效果图:
项目结构:
代码:
自定义控件WaveView
package com.example.shuibowen;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by 16838 on 2017/11/9. */public class WaveView extends View {// 画笔 private Paint paint;// 圆心坐标 private float downX; private float downY;// 圆环半径 private int radio = 5; public WaveView(Context context, AttributeSet attrs) { super(context, attrs); initView(); } private void initView() { radio = 5; paint = new Paint();// 设置红色 paint.setColor(Color.RED);// 设置平滑 paint.setAntiAlias(true);// 风格是圆环 paint.setStyle(Paint.Style.STROKE); } private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); radio += 5; int alpha = paint.getAlpha(); alpha -= 5; if(alpha <0){ alpha =0; }// 设置透明度 paint.setAlpha(alpha);// 设置圆环宽度 paint.setStrokeWidth(radio / 3); invalidate();//调用onDraw(); } }; /** * 绘制 * @param canvas */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if(paint.getAlpha()>0&&downX>0&&downY>0){ canvas.drawCircle(downX,downY,radio,paint); handler.sendEmptyMessageDelayed(0,20); } } /** * 事件 * @param event * @return */ @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: downX = event.getX(); downY = event.getY(); initView(); invalidate(); break; } return super.onTouchEvent(event); }}activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.shuibowen.MainActivity"> <com.example.shuibowen.WaveView android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>参考视频:
http://www.gulixueyuan.com/course/124/learn#lesson/1935
源码下载:Myself----shuibowenhttp://download.csdn.net/download/zhaihaohao1/10111351
阅读全文
0 0
- Android自定义控件10----继承View实现水波纹效果
- Android 自定义view实现水波纹效果
- android 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- Android自定义View实现水波纹效果
- Android:自定义View实现水波进度效果
- Android自定义View实现水波浪效果
- Android利用自定义View实现水波纹效果
- Android 之自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- Boolan-C++开发工程师-泛型编程-第一周笔记
- Dubbo API 笔记——Dubbo协议&最佳实践
- gulp.order <gulp插件>
- TP5 错误集合
- Xlistview请求网络实现上下拉
- Android自定义控件10----继承View实现水波纹效果
- flex布局兼容
- QT程序的发布步骤及问题的解决(windeployqt 及NSIS)
- (实战项目一)手机App抓包爬虫
- CTF 与 渗透测试学习指南
- my.cnf配置优化
- 漫谈单点登录
- “小明,滚出去!”之程序员版
- 【重磅】新智元推出百万级AI智库资讯互动平台,AI World2017世界人工智能大会TOP10大奖榜单发布