问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android 怎么在屏幕中间画一个圆

发布网友 发布时间:2022-04-30 07:26

我来回答

1个回答

热心网友 时间:2022-06-19 01:40

主要运用SurfaceView来实现在屏幕上画一个圆,你可以通过按方向键和触摸屏幕来改变圆的位置 代码:Activity package com.view; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏状态栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 把Activity的标题去掉 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置布局 this.setContentView(new MySurfaceView(this)); } }SurfaceView package com.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; public class MySurfaceView extends SurfaceView implements Runnable, Callback { private SurfaceHolder mHolder; // 用于控制SurfaceView private Thread t; // 声明一条线程 private boolean flag; // 线程运行的标识,用于控制线程 private Canvas mCanvas; // 声明一张画布 private Paint p; // 声明一支画笔 private int x = 50, y = 50, r = 10; // 圆的坐标和半径 public MySurfaceView(Context context) { super(context); mHolder = getHolder(); // 获得SurfaceHolder对象 mHolder.addCallback(this); // 为SurfaceView添加状态监听 p = new Paint(); // 创建一个画笔对象 p.setColor(Color.WHITE); // 设置画笔的颜色为白色 setFocusable(true); // 设置焦点 } /** * 自定义一个方法,在画布上画一个圆 */ public void Draw() { mCanvas = mHolder.lockCanvas(); // 获得画布对象,开始对画布画画 mCanvas.drawRGB(0, 0, 0); // 把画布填充为黑色 mCanvas.drawCircle(x, y, r, p); // 画一个圆 mHolder.unlockCanvasAndPost(mCanvas); // 完成画画,把画布显示在屏幕上 } /** * 当SurfaceView创建的时候,调用此函数 */ @Override public void surfaceCreated(SurfaceHolder holder) { t = new Thread(this); // 创建一个线程对象 flag = true; // 把线程运行的标识设置成true t.start(); // 启动线程 } /** * 当SurfaceView的视图发生改变的时候,调用此函数 */ @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } /** * 当SurfaceView销毁的时候,调用此函数 */ @Override public void surfaceDestroyed(SurfaceHolder holder) { flag = false; // 把线程运行的标识设置成false } /** * 当屏幕被触摸时调用 */ @Override public boolean onTouchEvent(MotionEvent event) { x = (int) event.getX(); // 获得屏幕被触摸时对应的X轴坐标 y = (int) event.getY(); // 获得屏幕被触摸时对应的Y轴坐标 return true; } /** * 当用户按键时调用 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_DPAD_UP){ //当用户点击↑键时 y--; //设置Y轴坐标减1 } return super.onKeyDown(keyCode, event); } @Override public void run() { while (flag) { Draw(); // 调用自定义画画方法 try { Thread.sleep(50); // 让线程休息50毫秒 } catch (InterruptedException e) { e.printStackTrace(); } } } }MySurfaceView首先继承SurfaceView,然后实现Runnable和Callback接口 重写了Runnable的run方法和Callback的surfaceCreated(SurfaceHolder holder),surfaceChanged(SurfaceHolder holder, int format, int width,int height),surfaceDestroyed(SurfaceHolder holder)方法,还实现了onTouchEvent(MotionEvent event),onKeyDown(int keyCode, KeyEvent event)方法来,详细的在代码里已注释。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...防御里的4个都开不起来 错误的代码是80020002 80010007 煎牛排用什么肉好 茄子怎么做比较好吃呢? English tabloid手抄报 English tabloid手抄报怎么画 邓小平“南方讲话”关于发展问题最著名的观点是( )。 电脑电源输出12V、5V的作用是什么? win10手机能玩电脑游戏win10系统的手机难道可以安装和电脑一样的软件... 如何设置才能做到只能通过远程桌面访问server2003 怎样解电脑开机密码?且要保住电脑资料,请各位高手赐教,谢谢! 糖友荟糖友荟简介 政企卡和正常卡的区别 在android中如何画一条虚线 对公手机卡有什么不一样? 五大淡水湖的传说 五大淡水湖传说故事 鄱阳湖的噩梦是什么? 耽美快穿文什么白月光 用原耽句子谈人生是不是有点不太合适? 有哪些冷门但文笔好的原耽? 2020年称将有多部耽美小说被翻拍,网友要如何守护心中的白月光? 原耽姐妹是啥意思 所谓原耽女孩是什么心理? 五大原耽是什么 你认为耽美小说中的白月光是哪本♡? 如今耽美小说被推上高潮,哪本小说才是你当之无愧的白月光? 原耽是信仰下一句是什么? 黑又黑注册过商标吗?还有哪些分类可以注册? 请问有人知道四川省江油市太平镇的胡林吗? 湖南启盛财务咨询有限公司怎么样? 湖南快算会计事务所有限责任公司怎么样? vivado怎么增加板卡级支持包 怎么用Android画一个正方形 联通政企卡好用吗? 如何用android 画出三角形 魔鬼大三角之鄱阳湖之谜 android如何在屏幕点击位置画一个小圆 为什么鄱阳湖又叫彭蠡? psp真三国无双 联合突袭 张角 怎么杀啊? android 怎么画一个圆弧的正方形 psp真三国无双张角那关怎么过? 吉林联通政企卡怎么办理 彭蠡的鄱阳湖的形成及其扩展 android如何画一条动态直线? 真三国无双 黄巾之乱 里的张角 怎么打啊? 鄱阳湖的历史人物? 真三国无双联合突袭决战擂台攻略(打张角那个,☆☆☆) android怎么画竖线 联通政企卡 含鄱口的含鄱口传说 真三国无双中怎么打出张角啊?