日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android實現花瓣飄落效果的步驟

瀏覽:160日期:2022-09-19 08:47:11
效果展示

Android實現花瓣飄落效果的步驟

實現原理 首先需要生成繪制小花的坐標點,坐標點的橫坐標是根據控件的寬度隨機生成的,而縱坐標則設置為小花圖片高度的負值(這樣可以實現小花從屏幕外進入)。 將這些點存儲到集合當中。 遍歷集合根據點的位置繪制小花 繪制完后不斷增加各個點的縱坐標實現步驟

1.定義變量將變量初始化

private SurfaceHolder mHolder; private boolean mFlag = true;//繪制小花線程的開關標志 private ArrayList<PointF> mFlowers;//小花點的坐標集合 private Random mRandom;//負責隨機數生成 private Bitmap mBitmap;//小花的圖案 public FlowerView(Context context) {super(context);init(); } public FlowerView(Context context, AttributeSet attrs) {super(context, attrs);init(); } public FlowerView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init(); } private void init(){mHolder = getHolder();mHolder.addCallback(this);//設置背景透明this.setZOrderOnTop(true);mHolder.setFormat(PixelFormat.TRANSLUCENT);mFlowers = new ArrayList<>();mRandom = new Random();mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_hua); }

2.實現添加花朵坐標點的方法

/** * 添加花朵 */ private void addFlower(){PointF point = new PointF();point.x=mRandom.nextInt(getWidth());//根據控件寬度隨機生成X軸坐標point.y=-mBitmap.getHeight();//縱坐標設置為小花圖像的負值(產生從屏幕外進入的效果)mFlowers.add(point);//將坐標點添加進集合 }

3.實現SurfaceHolder.Callback及Runnable接口

public class FlowerView extends SurfaceView implements SurfaceHolder.Callback,Runnable

4.在run方法中實現繪制邏輯

@Override public void run() {while (mFlag){ try {Thread.sleep(80);//控制小花的下落速度Canvas canvas = mHolder.lockCanvas();PointF pointF = null;//清屏操作(否則會殘留一些無用圖像)if(canvas!=null){ canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);}else { continue;}for(PointF point: mFlowers){ pointF = point; canvas.drawBitmap(mBitmap,pointF.x,pointF.y,null); int i = mRandom.nextInt(getHeight()/50)+getHeight()/50;//修改雨滴線的縱坐標,使其看起來在下雨 pointF.y=pointF.y+i;}mHolder.unlockCanvasAndPost(canvas);addFlower();//當繪制點的縱坐標大于控件高度時,將該點移除if(mFlowers.size()>0&&pointF!=null&&pointF.y>=getHeight()){ mFlowers.remove(pointF);} }catch (Exception e){}} }

5.在SurfaceHolder.Callback的回調方法中開啟繪制線程

@Override public void surfaceCreated(SurfaceHolder holder) {mFlag = true;//surface創建時將線程開關打開new Thread(this).start();//開啟線程繪制 } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {mFlowers.clear();//當控件發生改變時清除之前的繪制點 } @Override public void surfaceDestroyed(SurfaceHolder holder) {mFlag = false;//當surface銷毀時關掉繪制線程 }完整代碼展示

public class FlowerView extends SurfaceView implements SurfaceHolder.Callback,Runnable{ private SurfaceHolder mHolder; private boolean mFlag = true;//繪制小花線程的開關標志 private ArrayList<PointF> mFlowers;//小花點的坐標集合 private Random mRandom;//負責隨機數生成 private Bitmap mBitmap;//小花的圖案 public FlowerView(Context context) {super(context);init(); } public FlowerView(Context context, AttributeSet attrs) {super(context, attrs);init(); } public FlowerView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init(); } private void init(){mHolder = getHolder();mHolder.addCallback(this);//設置背景透明this.setZOrderOnTop(true);mHolder.setFormat(PixelFormat.TRANSLUCENT);mFlowers = new ArrayList<>();mRandom = new Random();mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_hua); } @Override public void surfaceCreated(SurfaceHolder holder) {mFlag = true;new Thread(this).start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {mFlowers.clear(); } @Override public void surfaceDestroyed(SurfaceHolder holder) {mFlag = false; } @Override public void run() {while (mFlag){ try {Thread.sleep(80);Canvas canvas = mHolder.lockCanvas();PointF pointF = null;//清屏操作if(canvas!=null){ canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);}else { continue;}for(PointF point: mFlowers){ pointF = point; canvas.drawBitmap(mBitmap,pointF.x,pointF.y,null); int i = mRandom.nextInt(getHeight()/50)+getHeight()/50;//修改雨滴線的縱坐標,使其看起來在下雨 pointF.y=pointF.y+i;}mHolder.unlockCanvasAndPost(canvas);addFlower();if(mFlowers.size()>0&&pointF!=null&&pointF.y>=getHeight()){ mFlowers.remove(pointF);} }catch (Exception e){}} } /** * 添加花朵 */ private void addFlower(){PointF point = new PointF();point.x=mRandom.nextInt(getWidth());point.y=-mBitmap.getHeight();mFlowers.add(point); }}

以上就是Android實現花瓣飄落效果的步驟的詳細內容,更多關于Android實現花瓣飄落效果的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品99精品一区二区三区∴| 日韩中文字幕区一区有砖一区| 91亚洲国产| 国产亚洲高清视频| 色88888久久久久久影院| 精品久久免费| 视频一区视频二区中文| 成人久久一区| 久久精品123| 日本精品在线中文字幕| 精品久久精品| 国产a久久精品一区二区三区| 精品91福利视频| 亚洲欧美在线专区| 蜜臀久久久99精品久久久久久| 精品一区二区三区亚洲| 91嫩草精品| 国产日韩视频在线| 欧美精品1区| 国产福利91精品一区二区| 精品久久亚洲| 精品久久91| 99精品综合| 亚洲一区欧美激情| 亚洲久久视频| 久久只有精品| 亚洲激情精品| 国产精品7m凸凹视频分类| 97精品国产| 欧洲av不卡| 蜜桃久久av| 久久国产婷婷国产香蕉| 久久精品欧洲| 欧洲毛片在线视频免费观看| 久久精品伊人| 欧美午夜精品一区二区三区电影| 日韩一级精品| 亚洲欧美日韩精品一区二区| 中文字幕日韩欧美精品高清在线| 国产精品一区二区三区美女| 国产精品久久久免费| 日韩电影二区| 亚洲精品亚洲人成在线观看| 日本在线不卡视频一二三区| 黄色aa久久| 日韩高清成人在线| 99热精品久久| 高清av一区| 蜜桃伊人久久| 国产精品一区二区三区av麻| 国产麻豆久久| 蜜桃av一区二区在线观看| 精品欠久久久中文字幕加勒比| 日本欧美在线看| 日韩免费福利视频| 色综合视频一区二区三区日韩| 鲁鲁在线中文| 精品国产不卡一区二区| 欧美精选一区二区三区| 美日韩精品视频| 亚洲香蕉网站| 国产女人18毛片水真多18精品| 石原莉奈在线亚洲二区| 精品国产乱码久久久久久樱花 | 精品久久免费| 一区二区三区午夜视频| 亚洲美女久久精品| 国产亚洲精品美女久久| 亚洲一级大片| re久久精品视频| 日韩精品诱惑一区?区三区| 成人免费一区| 深夜福利一区| 日韩一区二区久久| 人人精品人人爱| 捆绑调教日本一区二区三区| 国产亚洲字幕| 国产一区二区三区四区五区| 久久国内精品| 国产一卡不卡| 欧美成人一二区| 日韩免费在线| 国产精品99一区二区| 婷婷综合电影| 国产成人免费av一区二区午夜| 欧美精品激情| 日本欧美在线看| 国产情侣久久| 水蜜桃精品av一区二区| 亚洲专区在线| 中文无码久久精品| 亚洲理论在线| 国产精品色在线网站| 欧美日韩激情| 国产精品资源| 久久国产高清| 久久国产欧美| 欧美成人基地 | 欧美天堂在线| 青青青国产精品| 欧美三级网址| 欧美国产三级| 午夜电影一区| 亚洲一区成人| 香蕉国产精品| 亚洲va在线| 五月天av在线| 精品女同一区二区三区在线观看| 国产欧美自拍| 国产视频欧美| 国产中文一区| 日韩欧美午夜| 精品免费在线| 美女性感视频久久| 久久不卡国产精品一区二区| 久久精品国产久精国产| 亚洲人亚洲人色久| 亚洲资源网站| 少妇精品久久久一区二区三区| 欧美日本精品| 日韩精彩视频在线观看| 久久99高清| 国产欧美日韩影院| 国产精品成人a在线观看| 久久国内精品自在自线400部| 成人亚洲精品| 国语精品一区| 国产不卡精品在线| 日韩久久一区二区三区| 久久国产日本精品| 在线午夜精品| 亚洲制服一区| 国产乱论精品| 蜜桃av在线播放| 九九综合在线| 涩涩涩久久久成人精品| 亚洲理论在线| 久久精品国产精品亚洲毛片| 美女精品久久| 亚洲欧美久久| 综合激情一区| 国产精品nxnn| 亚洲一本视频| 亚洲精品中文字幕乱码| 日韩中文字幕区一区有砖一区 | 欧美日韩精品免费观看视完整| 欧洲激情综合| 亚洲色图综合| 久久av中文| 精品一区毛片| 国产精品久一| 久久国产影院| 中文字幕乱码亚洲无线精品一区| 欧美日本三区| 国产欧美激情| 亚洲一级二级| 国产欧美日韩在线观看视频| 亚洲91精品| 欧美精品中文字幕亚洲专区| av高清不卡| 日本中文字幕视频一区| 91视频久久| 亚洲美洲欧洲综合国产一区 | 国产一区导航| 欧美日韩一区二区三区不卡视频 | 亚洲精品123区| 亚洲精品在线国产| 日本一区二区免费高清| 日韩中文字幕亚洲一区二区va在线| av中文资源在线资源免费观看| 亚洲毛片在线| av资源新版天堂在线| 欧美日韩18| 91精品丝袜国产高跟在线| 丝袜av一区| 免费在线欧美黄色| 日本不卡视频在线观看| 亚洲精品伊人| 国产亚洲精品v| 亚洲一区资源| 水蜜桃久久夜色精品一区| 国产高清亚洲| 韩日一区二区| 日本视频一区二区| 日韩欧美久久| 亚洲精品日韩久久| 亚洲人成高清| 亚洲三级av| 日本不卡一二三区黄网| 日韩欧美美女在线观看| 欧洲激情综合| 欧美高清一区| 欧美日韩水蜜桃| 丝袜亚洲精品中文字幕一区| 三上悠亚国产精品一区二区三区 | 久久一区视频| 国产一区二区三区国产精品| 国产精品二区不卡| 综合一区av| 四虎在线精品|