自定义view水波纹
来源:互联网 发布:网址域名大全 编辑:程序博客网 时间:2024/04/28 01:07
===========新建一个MyWave类====================
private int [] colors = new int[]{Color.BLUE,Color.RED,Color.YELLOW,Color.GREEN,Color.BLACK,Color.DKGRAY};///控制是否继续执行动画protected boolean isRunning = false;/** * 装圆的集合 */private ArrayList<Wave> wList;public MyWave(Context context, AttributeSet attrs) {super(context, attrs);wList = new ArrayList<MyWave.Wave>();}Handler handler=new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case 1:System.out.println(wList.size()+"-----------");//刷新数据flushData();//刷新页面invalidate();if(isRunning){handler.sendEmptyMessageDelayed(1, 50);}break;default:break;}};};@SuppressLint({ "ClickableViewAccessibility", "NewApi" })@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_MOVE:int x = (int)event. getX();int y = (int)event. getY();setCircle(x, y);System.out.println(x+"===="+y);break;}return true;}/** * 更新圆的大小和透明度 */protected void flushData() {for(int i=0;i<wList.size();i++){Wave wave = wList.get(i);//获得画笔透明度int alpha = wave.p.getAlpha();//透明的越来越高alpha= alpha-5;if(alpha<5){alpha=0;wList.remove(i);//isRunning=false;}//设置的透明度越来越高wave.p.setAlpha(alpha);//扩大半径wave.r=wave.r+3;wave.p.setStrokeWidth(wave.r/3);}if(wList.size() == 0){isRunning = false;}}/** * 设置圆 * @param x * @param y */private void setCircle(int x, int y) {if(wList.size()==0){createAndAddCircle(x,y);isRunning=true;handler.sendEmptyMessage(1);}else{createAndAddCircle(x,y);}}@Overrideprotected void onDraw(Canvas canvas) {for(int i=0;i<wList.size();i++){Wave wave = wList.get(i);canvas.drawCircle(wave.cx, wave.cy, wave.r, wave.p);}}/** * 创造圆并且添加 */private void createAndAddCircle(int x, int y) {Wave wave=new Wave();wave.cx=x;wave.cy=y;Paint paint=new Paint();paint.setStyle(Style.STROKE);paint.setAntiAlias(true);paint.setColor(colors[(int) (Math.random()*6)]);wave.p=paint;wList.add(wave);}// 圆的封装类private class Wave {// 圆心int cx;int cy;// 画笔Paint p;// 半径int r;}
=======================布局=============================
<pre name="code" class="java"><com.example.myview.MyWave android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true" />
0 0
- 自定义水波纹View
- 自定义view水波纹
- 自定义水波纹的View
- 自定义圆形水波纹View
- Android 水波纹自定义 View
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- android 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- Android 自定义view实现水波纹效果
- Android 自定义View练习之水波纹
- 自定义View——水波纹倒影
- 【Android】自定义View —— 水波纹
- 自定义view实现水波纹效果
- 自定义view实现水波纹效果
- android 自定义view 水波纹进度球
- com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0
- 数据一致性模型
- PyCharm 2016.1.4 activation code
- CodeForces 686AFree Ice Cream
- hdu-3938-Portal-并查集
- 自定义view水波纹
- weui网址
- 在Pandas中,如何根据Group By 结果计算 Row Number
- RMQ问题——sparse-table算法
- CSS居中之美(二)——水平居中
- 【编程语言】Python 列表元组排序
- tomcat 6 安装版内存设置
- ...
- python3 批量下载网页所有图片