• Stars
    star
    106
  • Rank 325,871 (Top 7 %)
  • Language
    Java
  • Created almost 8 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

下雨,飘雪,红包雨,碰撞球,粒子隧道,变幻 自定义View

XView

下雨,飘雪,红包雨,碰撞球,粒子变幻、粒子隧道,自定义View
代码解析(Code parsing):http://www.cnblogs.com/linguanh/p/6342099.html

  Created by 林冠宏(指尖下的幽灵).
 
  Blog : http://www.cnblogs.com/linguanh/;
  

效果展示

Video http://pan.baidu.com/s/1miyPn76
其中,球具备和边界的碰撞检测和每个球之间的碰撞

下雨 下雨 下雨 下雨 粒子变化 粒子变化

// 粒子变幻隧道
  particleView.setConfigAndRefreshView(
          new ParticleView.Config()
                  .setCanvasWidth(
                          // 设置画布宽度
                          getWindowManager().getDefaultDisplay().getWidth()
                  )
                  .setCanvasHeight(800) // 设置画布高度
                  .setParticleRefreshTime(50) // 设置每帧刷新间隔
                  .set_x_Step(15) // 设置 x 轴每次取像素点的间隔
                  .set_y_Step(19) // 设置  轴每次取像素点的间隔
                  .setParticleCallBack(
                          new ParticleView.ParticleCallBack() {
                              @Override
                              public ParticleView.Particle setParticle(ParticleView.Particle p, int index, int x, int y) {
                                  p.setX(x); // 设置获取回来的 x 为该 粒子的x坐标
                                  p.setY(y); // 设置获取回来的 y 为该 粒子的y坐标
                                  p.setIsZoom(true);  // 设置当前颗粒子是否启动缩放
                                  p.setRadiusMax(12); // 设置当前颗粒子最大的缩放半径
                                  p.setRadius(12);    // 设置当前颗粒子默认的半径

                                  /** 下面的 %3 是我演示 分批次 显示不同效果而设置 **/
                                  if(index % 3==0){
                                      p.setRectParticle(true); // 这个粒子是 正方形 的
                                      p.setIsHash(  // 设置它是否是散列的,即是随机移动
                                              true,
                                              new Random().nextInt(30)-15, // x 速率
                                              new Random().nextInt(30)-15  // y 速率
                                      );
                                  }
                                  return p; // 返回这个粒子
                              }

                              @Override
                              public boolean drawText(Bitmap bg,Canvas c) {
                                  /** 这里就是我们要自定义显示任意文字的地方 */
                                  MainActivity.this.drawText(bg,c,s);
                                  return true; /** 告诉它不要使用默认的 txt */
                              }
                          }
                  )
  );

MainActivity


        activity_main = (LinearLayout)findViewById(R.id.activity_main);

        rainView  = (RainView)  findViewById(R.id.rain);// new RainView (this);
        snowView  = (SnowView)  findViewById(R.id.snow);// new SnowView (this);
        moneyView = (MoneyView) findViewById(R.id.money);// new MoneyView(this);
        ballView  = (BallView)  findViewById(R.id.ball);

        findViewById(R.id.menu).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LghDialogUtil.showSimpleListDialog(
                        MainActivity.this,
                        new String[]{"下雨", "飘雪", "红包雨","碰撞球"},
                        new LghDialogUtil.DialogItemClick() {
                            @Override
                            public void onItemClick(AlertDialog dlg, View view, int position) {
                                switch (position){
                                    case 0:
                                        handle(
                                                position,rainView, snowView,moneyView,ballView
                                        );
                                        break;
                                    case 1:
                                        handle(
                                                position,rainView, snowView,moneyView,ballView
                                        );
                                        break;
                                    case 2:
                                        handle(
                                                position,rainView, snowView,moneyView,ballView
                                        );
                                        break;
                                    case 3:
                                        handle(
                                                position,rainView, snowView,moneyView,ballView
                                        );
                                        break;
                                }
                                dlg.dismiss();
                            }
                        }
                );
            }
        });
    }

    private void handle(int show,View... views){
        int length = views.length;
        for(int i=0;i<length;i++){
            if(i == show){
                views[i].setVisibility(View.VISIBLE);
            }else{
                views[i].setVisibility(View.GONE);
            }
        }
    }


More Repositories

1

WeChatVideoView

Android - 微信 - 朋友圈 - 小视频播放,wechat friend-circle,small video play
Java
264
star
2

WangyiyunBottomSheetDialog

网易云音乐效果的-BottomSheetDialog,Slide, rebound
Java
224
star
3

SlowlyProgressBar

真正的仿微信WebView顶部进度条效果。SlowlyProgressBar,ProgressBar
Java
88
star
4

SpeexVoiceRecorder

基于 speex 的语音录制
Java
81
star
5

EasyGoServer

一个能够仅仅依赖你创建好的 sql 文件,就能 自动帮你生成基础服务端框架代码 的 go server 框架
Go
50
star
6

eth-relay

以太坊中继,ETH-Relay。书籍:《区块链以太坊DApp开发实战》源码,区块扫描
Go
49
star
7

IjkPlayerDemo

IJKPlayer 的Dome,已经编译好了.so,可以直接使用,同时也做一些功能的拓展
Java
39
star
8

golang_image_compress

Go
36
star
9

LghGreenDaoCompatibleUpdateHelper

greenDao, green dao update,update,database,update helper
Java
30
star
10

XGoServer

一个基础性、模块完整且安全可靠的轻量级 Go 服务端框架
Go
22
star
11

LghHttp

A simple but powerful Http tool for Android
Java
18
star
12

btc_book

书籍:《区块链DApp开发: 基于以太坊和比特币》源码。btc blockchain code of my book
Go
13
star
13

VlcDemo

Java
12
star
14

GreenDaoHelper

Java
8
star
15

lghLoopViewPager

loop,viewpager
Java
6
star
16

ErrorDocAutoPrinter

Error Doc Auto Print. It can find the specified row in your code and print the document.
Go
5
star
17

TeamTalk_Android_IM_Module

即时通讯模块
Java
4
star
18

blockparser

General blockchain block parsing template code
Go
4
star
19

LGHVideoPlayer

Java
3
star
20

LghOkHttpLib

okhttp tool,tool,okhttp
Java
1
star
21

googlemessage

google message 协议, gm, rcs 协议, rcs
1
star