首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android移动view

android移动view

作者头像
xiangzhihong
发布2018-01-26 17:58:46
4690
发布2018-01-26 17:58:46
举报
文章被收录于专栏:向治洪向治洪
  1. import android.app.Activity;  
  2. import android.content.Context;  
  3. import android.graphics.*;  
  4. import android.os.Bundle;  
  5. import android.view.*;  
  6. public class Mian extends Activity {  
  7. /** Called when the activity is first created. */
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {  
  10. super.onCreate(savedInstanceState);  
  11.         MyView my=new MyView(this);  
  12.         setContentView(my);  
  13.     }  
  14. }  
  15. class MyView extends SurfaceView implements SurfaceHolder.Callback,Runnable  
  16. {  
  17.     SurfaceHolder holder;  
  18.     Rect rect;//创建类
  19. public MyView(Context context)  
  20.     {  
  21. super(context);  
  22.         holder = this.getHolder();//获取SurfaceHolder对象实例  
  23.         holder.addCallback(this);//添加callback接口
  24.         setFocusable(true);   
  25.         rect=new Rect(150, 150);  
  26.         Thread t=new Thread(rect);  
  27.         t.start();  
  28.     }  
  29. @Override
  30. //当SurfaceView尺寸改变时调用
  31. public void surfaceChanged(SurfaceHolder holder, int format, int width,int height){}  
  32. @Override
  33. //当SurfaceView创建时调用
  34. public void surfaceCreated(SurfaceHolder holder)  
  35.     {  
  36. new Thread(this).start();//启动新的线程
  37.     }  
  38. //当SurfaceView销毁时调用
  39. @Override
  40. public void surfaceDestroyed(SurfaceHolder holder){}  
  41. @Override
  42. public synchronized void  run() {  
  43. // TODO Auto-generated method stub
  44. while(true){  
  45.             Canvas canvas = holder.lockCanvas(null);//SurfaceHolder锁定并获得canvas对象 
  46.             canvas.drawColor(Color.WHITE);  
  47. this.drawGraphics(canvas);  
  48.             holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像  
  49. try {  
  50.                 Thread.sleep(500);  
  51.             } catch (InterruptedException e) {  
  52. // TODO Auto-generated catch block
  53.                 e.printStackTrace();  
  54.             }  
  55.         }  
  56.     }  
  57. public void drawGraphics(Canvas canvas){  
  58.         Paint mPaint = new Paint();  
  59.         mPaint.setStyle(Paint.Style.FILL);//设置为实心
  60.         mPaint.setColor(Color.RED);  
  61.         mPaint.setAntiAlias(true);//设置抗锯齿
  62. this.draw(canvas, mPaint);  
  63.     }  
  64. public void draw(Canvas canvas,Paint p){  
  65.         canvas.drawCircle(100, rect.y, 50, p);//画圆 
  66.     }  
  67. }  
  68. class Rect implements Runnable{//矩形类
  69. int x;  
  70. int y;  
  71. int speed=10;  
  72. public Rect(int x,int y){  
  73. this.x=x;  
  74. this.y=y;  
  75.     }  
  76. @Override
  77. public void run() {  
  78. // TODO Auto-generated method stub
  79. while(true){  
  80.             y+=speed;  
  81. try {  
  82.                 Thread.sleep(500);  
  83.             } catch (InterruptedException e) {  
  84. // TODO Auto-generated catch block
  85.                 e.printStackTrace();  
  86.             }  
  87.         }  
  88.     }  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-12-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档