当前位置: 首页 > news >正文

兰州公司网站建设永久免费跨境浏览app

兰州公司网站建设,永久免费跨境浏览app,建设网站坪山,网站设计风格有几种目录:1、使用SurfaceView画一张图2、自定义view绘制一张图开始认真学一下Android多媒体开发,拓宽多媒体的技术面,绘制一张图在Android中有三种方法:SurfaceView、ImageView、自定义View。1、使用SurfaceView画一张图package com.e…

目录:

1、使用SurfaceView画一张图

2、自定义view绘制一张图


开始认真学一下Android多媒体开发,拓宽多媒体的技术面,绘制一张图在Android中有三种方法:SurfaceView、ImageView、自定义View。

1、使用SurfaceView画一张图

package com.example.tongjiangsong.surfaceviewdemo; import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.view.SurfaceView; public class CommonSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable {     private SurfaceHolder mHolder;    private Canvas mCanvas;    private Path mPath;    private Paint mPaint;    //用于绘制的线程    private Thread mThread;    //线程状态的标记(线程的控制开关)    private boolean isRunning;    private int drawX;    private int drawY;     public CommonSurfaceView(Context context) {        this(context,null);    }     public CommonSurfaceView(Context context, AttributeSet attrs) {        this(context, attrs,0);    }     public CommonSurfaceView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        //初始化        mHolder = getHolder();        mHolder.addCallback(this);//管理生命周期        mPath=new Path();        //初始化画笔        mPaint=new Paint();        mPaint.setStyle(Paint.Style.STROKE);        mPaint.setStrokeWidth(6);        mPaint.setAntiAlias(true);        mPaint.setColor(Color.RED);        setFocusable(true);        setFocusableInTouchMode(true);        this.setKeepScreenOn(true);    }     @Override    public void surfaceCreated(SurfaceHolder holder) {         isRunning = true;        mThread = new Thread(this);        mThread.start();//开启线程    }     @Override    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {    }     @Override    public void surfaceDestroyed(SurfaceHolder holder) {        isRunning = false;    }     /***     * 注意这个是在子线程中绘制的     */    @Override    public void run() {        while (isRunning) {            drawX++;            drawY = (int) (100 * Math.sin(drawX * 2 * Math.PI / 180) + 400);            mPath.lineTo(drawX, drawY);            draw();        }     }     /***     * 注意这个是在子线程中绘制的,surface支持子线程更新ui,所以     */    private void draw() {        Canvas canvas = null;        //给画布加锁,防止线程安全,防止该内存区域被其他线程公用        canvas = mHolder.lockCanvas();        if (null != canvas) {            //清屏操作或者设置背景            canvas.drawColor(Color.WHITE);            canvas.drawPath(mPath, mPaint);            //提交显示视图并解锁,防止长期占用此内存            mHolder.unlockCanvasAndPost(canvas);        }    }  }

输出结果:

d869e2a736197b85f0a171905ddffa28.png
67792f14c6a807304a661b9c48dd4766.gif

2、使用自定义view绘制一张图

package com.example.tongjiangsong.viewdemo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import java.util.Random;public class BallView extends View {    private Context mContext;    private AttributeSet mAttrs;    private Paint paint;        //定义画笔    public BallView(Context context) {        super(context);        this.mContext = context;        //初始化画笔        initPaint();    }    public BallView(Context context, AttributeSet attrs) {        super(context, attrs);        this.mContext = context;        this.mAttrs = attrs;        initPaint();    }    public BallView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        this.mContext = context;        this.mAttrs = attrs;        initPaint();    }    private void initPaint(){        paint = new Paint();    }    //重写onDraw方法实现绘图操作    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        paint.setAntiAlias(false);                       //设置画笔为无锯齿        paint.setColor(Color.BLACK);                    //设置画笔颜色        canvas.drawColor(Color.WHITE);                  //白色背景        paint.setStrokeWidth((float) 3.0);              //线宽        paint.setStyle(Paint.Style.STROKE);                   //空心效果        canvas.drawCircle(50, 50, 10, paint);           //绘制圆形        canvas.drawCircle(100, 100, 20, paint);         //绘制圆形        canvas.drawCircle(150, 150, 30, paint);         //绘制圆形        canvas.drawCircle(200, 200, 40, paint);         //绘制圆形        canvas.drawCircle(250, 250, 50, paint);         //绘制圆形        canvas.drawCircle(300, 300, 60, paint);         //绘制圆形        canvas.drawCircle(350, 350, 70, paint);         //绘制圆形    }}

输出结果:

1f9189f51aca861096b1b62a8f14e92a.png
abfd831e27c2449c272185445bfd2dbc.gif

本人CSDN博客地址:https://blog.csdn.net/tong5956​​

http://www.lbrq.cn/news/2646235.html

相关文章:

  • wordpress如何使用模板焦作关键词优化排名
  • 网站平台怎么做的如何优化搜索引擎的搜索功能
  • wordpress链接数据库间歇出错整站优化是什么意思
  • 赣州建设部网站ip或域名查询网
  • 如何网站里做照片百度识图 上传图片
  • 有没有做淘宝的网站吗公司推广文案
  • 做网站界面的软件seo网站优化教程
  • 做网站的软件帝国南宁排名seo公司
  • 现在主流网站用什么做的指数搜索
  • 好的手机网站建设公司百度集团
  • 淄博教育学校网站建设app代理推广合作50元
  • 网站改版需要重新备案吗学习软件的网站
  • 如何做微信网站建设餐饮营销手段13种手段
  • 学校网站怎样建设新冠疫情最新消息今天
  • 在县城做商城网站seo全称
  • 应用公园app制作教程网络建站优化科技
  • 网站制作的基本宁波网站推广大全
  • 做游戏代练网站优化营商环境
  • 武汉做网站需要多少钱广东seo推广哪里好
  • element做模板wordpress天津关键词优化专家
  • 主流大型网站开发语言调查网页版登录入口
  • wordpress弹窗登陆太原seo排名优化软件
  • 外贸网站建设上海武汉刚刚突然宣布
  • 北京企业网站设计公司深圳品牌策划公司
  • 网站建站的费用上海专业seo服务公司
  • 模板企业快速建站如何引流被动加好友微信
  • 用ps怎么做网站步骤百度刷排名百度快速排名
  • 微信开放平台 网站应用开发2022年十大流行语
  • 上海微网站建设方案外贸网站建设平台
  • 目前网站建设用哪种语言株洲seo
  • [ MySQL 数据库 ] 多表关联查询
  • Android 锁屏图标的大小修改
  • 1393. 与7无关的数?
  • 图片拆分工具,自定义宫格切割
  • 嵌入式Linux学习 - 数据结构6
  • Chrome DevTools Protocol 开启协议监视器