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

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

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

瀏覽:157日期: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久久,三上悠亚国产精品一区二区三区
蜜桃视频在线观看一区| 亚洲欧美在线专区| 精品伊人久久久| 模特精品在线| 中文字幕一区二区三区日韩精品| 在线视频亚洲| 婷婷亚洲精品| 国产一区二区三区不卡av| 久久男人天堂| 亚洲欧美成人综合| 中文字幕一区二区av| 九九久久国产| 欧洲毛片在线视频免费观看| 1024精品久久久久久久久| 久久午夜视频| 久久99影视| 日本少妇一区| 日韩中文字幕在线一区| 国产精品久久久久久久久免费高清 | 国产欧美亚洲一区| 人人香蕉久久| 欧美日韩一区二区三区在线电影| 日韩专区精品| 国产福利一区二区三区在线播放| 欧美日韩免费观看视频| 欧美日韩18| av不卡在线看| 国产精品久久久久久久久妇女| 欧美~级网站不卡| 毛片不卡一区二区| 人人精品久久| 欧美一区=区| 日韩大片在线播放| 国产精品a级| 欧美精品国产| 亚洲免费影视| 1024精品一区二区三区| 国产高清日韩| 亚洲青青久久| 国产一在线精品一区在线观看| 国产精品巨作av| 欧美日一区二区三区在线观看国产免| 水野朝阳av一区二区三区| 福利欧美精品在线| 麻豆国产91在线播放| 国产日韩欧美一区| 日韩不卡一二三区| 中文精品电影| 伊人国产精品| 免费观看在线综合| 视频一区二区三区入口| 日韩午夜免费| 丝袜脚交一区二区| 免费成人在线影院| 中文在线日韩| 综合一区二区三区| 日韩有码av| 久久狠狠久久| 欧美啪啪一区| 国产一区三区在线播放| 国产不卡人人| 99精品视频在线| 国产精品视区| 日韩高清一区| 国产精品**亚洲精品| 国产不卡人人| 亚洲激情欧美| 国产乱子精品一区二区在线观看| 日韩精品一区二区三区中文| 久久久久亚洲精品中文字幕| 四虎国产精品免费观看| 亚洲韩日在线| 久久国产生活片100| 欧美一区不卡| 日本а中文在线天堂| 久久视频一区| 97久久中文字幕| 欧美黄页在线免费观看| 伊人久久在线| 亚洲一区二区三区四区五区午夜| 在线精品一区| 日韩影院二区| 亚洲理论在线| 国产精品扒开腿做爽爽爽软件| 国产96在线亚洲| 亚洲最大av| 久久久久国产一区二区| 亚洲精品影视| 日韩国产一区| 国产日本亚洲| 日韩精品第一| 日韩精品1区2区3区| 美女被久久久| 在线观看一区| 日韩高清不卡在线| 蜜臀国产一区二区三区在线播放| 欧美aa在线观看| 久久国产直播| 欧美在线资源| 亚洲综合小说| 国产日本亚洲| 欧美aⅴ一区二区三区视频| 国产精品一区高清| 欧美一区二区三区免费看| 日韩精品免费观看视频| 久久精品动漫| 激情视频网站在线播放色 | 免费成人av在线播放| 日韩欧美在线中字| 老司机精品视频在线播放| 午夜视频一区二区在线观看| 欧美一区三区| 日韩精品永久网址| 婷婷综合福利| 日韩一区二区中文| 久久精品二区亚洲w码| 国产欧美在线观看免费| 视频一区日韩| 国产精品久久久久久久久妇女| 国产精品密蕾丝视频下载| 日本午夜精品| 国产精品大片免费观看| 麻豆精品视频在线观看| 97人人精品| 97在线精品| 1000部精品久久久久久久久| 在线一区免费观看| 91p九色成人| 大香伊人久久精品一区二区| 成人亚洲一区| 91精品国产乱码久久久久久久 | 青青草精品视频| 亚洲精品一级二级三级| 日韩av资源网| 亚洲精品激情| 国产精品嫩草99av在线| 国产aⅴ精品一区二区四区| 精品久久不卡| 日韩欧美另类中文字幕| 四虎8848精品成人免费网站| 老牛影视一区二区三区| 韩国女主播一区二区三区| 久久国产88| 国产麻豆精品| 欧美日韩国产一区二区三区不卡| 国产亚洲精品美女久久| 中国女人久久久| 综合亚洲视频| 欧美aaaaaa午夜精品| 欧美日韩国产在线观看网站 | 91精品一区二区三区综合| 91亚洲精品在看在线观看高清| 群体交乱之放荡娇妻一区二区| 91精品啪在线观看国产爱臀| 一本一道久久a久久精品蜜桃| 88久久精品| 五月激激激综合网色播| 香蕉精品视频在线观看| 日韩天堂在线| 精品九九久久| 久久影院资源站| 国产日韩欧美一区二区三区| 一区二区三区午夜视频| 日韩视频免费| 成人福利av| 激情国产在线| 激情视频网站在线播放色| 久久一区欧美| 久久精品福利| 国产精品99久久久久久董美香| 在线看片不卡| 亚洲作爱视频| 免费看黄色91| 亚洲另类视频| av一区二区高清| 麻豆精品99| 亚洲精品123区| 国产精品男女| 亲子伦视频一区二区三区| 免费看日韩精品| 久久av免费看| 美女性感视频久久| 日韩成人午夜精品| 一区二区国产在线| 1024精品一区二区三区| 久久亚洲人体| 日韩精品免费观看视频| 亚洲神马久久| 模特精品在线| 鲁大师影院一区二区三区| 日韩欧美一区二区三区在线观看 | 日韩三级一区| 国产一区白浆| 亚洲少妇在线| 精品一区二区三区亚洲| 精品免费在线| 国产成人精品一区二区三区免费| 久久久久蜜桃| 亚洲综合国产| 激情中国色综合|