亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

淺析SurfaceView使用surfaceview制作你想要的動畫

2019-11-06 09:46:46
字體:
來源:轉載
供稿:網友

   在項目實戰中我們可能會遇到一些變動比較快,需要經常變化的視圖顯示,而此時普通的View在性能和效率上沒有辦法完全滿足我們的需求,Android此時提供了一個特殊的視圖類surfaceview。

      .surfaceview 本身就是一個view,所以它符合view所有的特性(設置是否可見,寬高這些屬性 都滿足)。

       .surfaceview界面默認是沒有任何內容的,需要通過canvas來繪制。

        

    .提供了獨立于主線程紫外的線程中繪制(可以不再UI線程中繪制,可以在一個一個線程中不聽的更新界面

         并且不會引起ANR)

   .使用surfaceview 和普通控件使用一樣,但是必須的實現surfaceholder的回調(當surfaceview發生變化時自動            回調)

         

       . 獲取surfaceHolder 通過getHolder()獲得,在通過lockcanvas()把用于繪圖的canvas返回,當繪制結束可             以通過unlockCanvasAndPost()提交剛才修改的界面。 

                                      

相關函數以及用途:

                                       

  下面 我們做一個實時更新的動畫,效果圖如下:

                                                          

 代碼簡單直接貼代碼:

        

 

<?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:id="@+id/activity_my_surface_view"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.chenzhu.myPRojectblog.MySurfaceViewActivity">    <SurfaceView        android:id="@+id/mySurfaceView"        android:layout_width="match_parent"        android:layout_height="match_parent" /></RelativeLayout>

package com.example.chenzhu.myprojectblog;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;import java.util.Random;public class MySurfaceViewActivity extends AppCompatActivity {    SurfaceView surfaceView ;    SurfaceHolder surfaceHolder;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_my_surface_view);        surfaceView = (SurfaceView)findViewById(R.id.mySurfaceView);        surfaceHolder =surfaceView.getHolder();//獲取surfaceholder的實例        surfaceHolder.addCallback(new SurfaceHolder.Callback() {//為surfaceview設置回調            @Override            public void surfaceCreated(SurfaceHolder surfaceHolder) {                //默認的畫一張圖片在surfaceview上                Canvas  canvas = surfaceHolder.lockCanvas();                canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher),                        50 ,50 ,new Paint());                surfaceHolder.unlockCanvasAndPost(canvas);                //這里我們開一個子線程來更改surfaceview上的界面                new MyThread(surfaceHolder).start();            }            @Override            public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {            }            @Override            public void surfaceDestroyed(SurfaceHolder surfaceHolder) {            }        });    }    class MyThread extends  Thread{        SurfaceHolder  surfaceHolder;        Random random = new Random(0);        boolean refresh  = true;        public  MyThread(SurfaceHolder surfaceHolder){            this.surfaceHolder = surfaceHolder;        }        @Override        public void run() {            super.run();            //開啟一個死循環模擬一直更改surfaceview            while (refresh){                Canvas canvas = surfaceHolder.lockCanvas();                if(canvas==null){                    return;                }                int left = random.nextInt(canvas.getMaximumBitmapWidth()/40);                int top =  random.nextInt(canvas.getMaximumBitmapHeight()/20);                Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher);                canvas.drawBitmap(bitmap,left,top,new Paint());                surfaceHolder.unlockCanvasAndPost(canvas);                Log.d("CZLOG",""+left+"-----------"+top+"sum");                try {                    sleep(100);                } catch (InterruptedException e) {                    e.printStackTrace();                }            }        }    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美性猛交xxxx富婆弯腰| 国产精品日韩av| 亚洲人成网7777777国产| 国产精品嫩草影院久久久| 日韩精品丝袜在线| 亚洲欧美日韩国产精品| 亚洲一区av在线播放| 国产一区二区三区在线看| 久久久天堂国产精品女人| 亚州精品天堂中文字幕| 国产精品黄页免费高清在线观看| 欧美性猛交99久久久久99按摩| 97精品国产97久久久久久春色| 庆余年2免费日韩剧观看大牛| 九九久久综合网站| xxx欧美精品| 成人激情视频在线播放| 国产a∨精品一区二区三区不卡| 亚洲国产精品成人一区二区| 日韩精品在线视频美女| 亚洲网站在线看| 久久综合伊人77777蜜臀| 精品亚洲永久免费精品| 欧美一区二区三区免费视| 在线观看免费高清视频97| 欧美精品videosex极品1| 亚洲天堂免费视频| 精品国产1区2区| 欧美中文字幕精品| 久99九色视频在线观看| 国产成人综合精品| 久久久久女教师免费一区| 久久久久久国产精品| 欧美极品xxxx| 8x海外华人永久免费日韩内陆视频| 欧美成人国产va精品日本一级| 午夜伦理精品一区| 国产精品色悠悠| 欧美国产日韩精品| 亚洲大胆美女视频| 亚洲人成在线观| 日韩高清电影免费观看完整版| 欧美极品少妇xxxxⅹ喷水| 日韩国产在线播放| 日韩免费中文字幕| 国产精品久久久久久久久久新婚| 亚洲精品国产综合区久久久久久久| 久久中文字幕在线视频| 欧美在线日韩在线| 日韩av在线高清| 国产日韩精品在线| 日韩成人av一区| 日本午夜精品理论片a级appf发布| 在线成人免费网站| 久久九九热免费视频| 亚洲xxx自由成熟| 国产精品中文字幕在线观看| 久久福利视频导航| 精品国产一区二区三区在线观看| 一区二区三区无码高清视频| 亚洲夜晚福利在线观看| 亚洲精品国产精品国自产观看浪潮| 国产精品丝袜一区二区三区| 国产精品欧美激情| 中文字幕在线观看亚洲| 欧美在线精品免播放器视频| 亚洲三级av在线| 亚洲欧美中文日韩在线| 91丨九色丨国产在线| 美女精品视频一区| www欧美日韩| 狠狠色噜噜狠狠狠狠97| 欧美性高潮在线| 精品偷拍一区二区三区在线看| 在线精品视频视频中文字幕| 亚洲国产精彩中文乱码av| 亚洲欧美另类自拍| y97精品国产97久久久久久| 日韩av成人在线| 欧美国产日韩xxxxx| 亚洲日本欧美日韩高观看| 国产精品日韩欧美| 91免费电影网站| 亚洲午夜未满十八勿入免费观看全集| 欧美成人午夜影院| 国产精品一区二区三区免费视频| 国产精品久久久久久久久久久不卡| 色悠悠久久久久| 国产剧情日韩欧美| 国产免费一区二区三区在线能观看| 日韩亚洲精品视频| 亚洲国产一区二区三区四区| 亚洲精选一区二区| 亚洲无亚洲人成网站77777| 国产精品日日摸夜夜添夜夜av| 精品调教chinesegay| 亚洲天堂男人天堂女人天堂| 国内免费久久久久久久久久久| 人妖精品videosex性欧美| 国产精品99久久久久久人| 疯狂做受xxxx欧美肥白少妇| 日韩亚洲欧美中文在线| 欧美日韩激情视频8区| 久久久久久有精品国产| 国产69精品久久久久久| 国产精品嫩草影院久久久| 在线色欧美三级视频| 亚洲精品美女视频| 日韩精品极品视频| 亚洲国产成人精品一区二区| 久久国内精品一国内精品| 欧美中文字幕在线播放| 欧美激情xxxx性bbbb| 九九热精品视频国产| 亚洲a在线播放| 成人av.网址在线网站| 久久久在线视频| 国产精品一区二区三区久久| 亚洲国产精品成人精品| 97在线观看视频国产| 精品成人乱色一区二区| 久久久久久久激情视频| 久操成人在线视频| 成人免费看吃奶视频网站| 欧美一区二区三区免费视| 亚洲欧美国产日韩天堂区| 亚洲在线观看视频| 国产亚洲xxx| 国内免费精品永久在线视频| 亚洲一区美女视频在线观看免费| 欧美成人免费大片| 欧美极品少妇xxxxⅹ免费视频| 亚洲欧美中文日韩v在线观看| 97超碰蝌蚪网人人做人人爽| 国产欧洲精品视频| 欧美亚洲成人精品| 国产精品老女人视频| 懂色av中文一区二区三区天美| 亚洲精品美女久久久久| 日韩成人激情视频| 国产精品欧美日韩| 欧美性黄网官网| 热99久久精品| 91在线色戒在线| 精品国产福利视频| 国产精品扒开腿做爽爽爽男男| 美女啪啪无遮挡免费久久网站| 91国偷自产一区二区三区的观看方式| 欧洲午夜精品久久久| 97免费中文视频在线观看| 亚洲欧美日韩精品| 91免费高清视频| 中文字幕亚洲天堂| www.xxxx欧美| 日韩动漫免费观看电视剧高清| 国产精品1234| 欧美激情a∨在线视频播放| 国产精品美女av| 亚洲第一网站男人都懂| 91av视频在线免费观看| 一本一本久久a久久精品综合小说| 国产精品在线看| 日韩精品在线免费观看视频| 久久99国产综合精品女同|