加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml布局自定义SurfaceView模板

发布时间:2020-12-16 05:45:45 所属栏目:百科 来源:网络整理
导读:package com.dream.apm; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.util.Log;
  1. package com.dream.apm;

  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.Paint;
  6. import android.graphics.RectF;
  7. import android.util.AttributeSet;
  8. import android.util.Log;
  9. import android.view.MotionEvent;
  10. import android.view.SurfaceHolder;
  11. import android.view.SurfaceView;
  12. import java.io.UnsupportedEncodingException;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import java.util.Random;
  16. /**
  17. * Created by HuangZhiLong on 2015/1/22.
  18. */
  19. public class MySurfaceViewone extends SurfaceView implements SurfaceHolder.Callback,Runnable {
  20. private Thread th;
  21. private SurfaceHolder sfh;
  22. private Canvas canvas;
  23. private Paint paint;
  24. private boolean flag;
  25. public int screenW=0,screenH=0;
  26. /**
  27. * SurfaceView初始化函数
  28. */
  29. public MySurfaceViewone(Context context,AttributeSet attrs) {
  30. super(context,attrs);
  31. this.setKeepScreenOn(true);
  32. sfh = this.getHolder();
  33. sfh.addCallback(this);
  34. paint = new Paint();
  35. paint.setAntiAlias(true);//消除锯齿
  36. //paint.setTypeface(Typeface.DEFAULT_BOLD);
  37. this.setFocusable(true);
  38. this.setFocusableInTouchMode(true);
  39. }
  40. * SurfaceView视图创建,响应此函数
  41. @Override
  42. public void surfaceCreated(SurfaceHolder holder) {
  43. screenW = this.getWidth();
  44. screenH = this.getHeight();
  45. myDraw();
  46. //tt=new Rect(0,this.getWidth(),this.getHeight());
  47. flag = true;
  48. th = new Thread(this);
  49. th.start();
  50. * 游戏绘图
  51. public void myDraw() {
  52. try {
  53. canvas = sfh.lockCanvas();
  54. canvas.drawColor(Color.rgb(90,151,161));//背景
  55. paint.setStrokeWidth(0);
  56. paint.setColor(Color.BLACK);
  57. //paint.setTextSize(size);
  58. //绘制表格
  59. } catch (Exception e) {
  60. } finally {
  61. if (canvas != null)
  62. sfh.unlockCanvasAndPost(canvas);
  63. * 图片的线程运行
  64. public void run() {
  65. while (flag) {
  66. myDraw();
  67. try {
  68. Thread.sleep(40);
  69. } catch (Exception ex) {
  70. Log.e("ERROR","Thread is Error!");
  71. }
  72. * 触屏事件监听
  73. public boolean onTouchEvent(MotionEvent event) {
  74. switch (event.getAction())
  75. {
  76. //移动
  77. case MotionEvent.ACTION_MOVE:
  78. break;
  79. //按下
  80. case MotionEvent.ACTION_DOWN:
  81. //放开
  82. case MotionEvent.ACTION_UP:
  83. return true;
  84. * SurfaceView视图状态发生改变,响应此函数
  85. public void surfaceChanged(SurfaceHolder holder,int format,int width,int height) {
  86. System.out.println("ImageSurfaceView is surfaceChanged");
  87. * SurfaceView视图消亡时,响应此函数
  88. public void surfaceDestroyed(SurfaceHolder holder) {
  89. System.out.println("ImageSurfaceView is surfaceDestroyed");
  90. flag = false;//停止线程
  91. }
复制代码
android 中使用xml布局自定义SurfaceView模板

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读