精华内容
参与话题
问答
  • 画布

    2019-05-09 21:43:40
    画布 1.画布标签定义 定义元素一般需要宽度“width”属性和“height"属性,当然者两个属性可选,还可以用DOM属性或者CSS来设置。默认是"width"=300px ”height“=150px; 很多老的浏览器并不支持Canvas特性,这是...

    画布

    1.画布标签定义

    定义元素一般需要宽度“width”属性和“height"属性,当然者两个属性可选,还可以用DOM属性或者CSS来设置。默认是"width"=300px ”height“=150px;

    很多老的浏览器并不支持Canvas特性,这是需要对支持Canvas特性的浏览器给出提示:

    浏览器不支持Canvas元素
    2.画布工具对象、坐标、路径和填充
    画布区域其实是一个二维网格,其左上角的坐标为(0,0),因此也是画布的基点坐标。

    画布工具常用的路径方法如下:
    moveTO(x, y)方法 定义线条开始的坐标
    lineTO(x, y)方法 定义线条结束的坐标
    arc(x, y, r, start, stop)方法 定义画圆

    画布工具常用的填充方法如下:
    fillRect(x, y, width, height)方法 进行填充矩形画图操作
    fil()方法 进行填充画图操作

    当标签元素被添加到HTML5页面上的时候,初始化渲染是空白的。在通过JavaScript脚本语言进行图形绘制操作之前,先要获得渲染的上下文对象。具体是通过Canvas对象的getContext()方法获取的。

    	<script type="text/javascript">
    		window.onload = function() {     //资源加载结束后触发
    			var canvas =document.querySelector("canvas");  //获取canvas元素
    			if(canvas.getContext){   //判断上下文对象是否有效
    				var ctx = canvas.getContext("2d");   //获取渲染上下文
    				ctx.fillStyle = "#6A6AA7";  //填充颜色
    				ctx.fillRect(50,50, 200,200);  //绘制图形
    			}
    		}
    	</script>
    </head>
    <body>
    	<canvas width="300" height="300">浏览器不支持canvas工具</canvas>
    </body>
    
    展开全文
  • 商业模式画布

    万次阅读 2018-07-22 18:52:11
    周四周五机缘巧合参加了一场关于商业模式画布的培训,第一次参加趋向于商业方向的培训,一开始并没有抱太大的期望。但是听完两天的课之后,第一次给培训的老师全是满分的评价,因为确实内容非常受用,两天的课程中即...

    周四周五机缘巧合参加了一场关于商业模式画布的培训,第一次参加趋向于商业方向的培训,一开始并没有抱太大的期望。但是听完两天的课之后,第一次给培训的老师全是满分的评价,因为确实内容非常受用,两天的课程中即包含了方法论,也包含了很多实战的例子,并且是非常互联网化的实例,比如Google、小米、Wechat、沃尔玛等等。
    实际工作上由于很少关注商业模式,担心会遗忘,因此结束后立即结合老师讲课的内容、自己的理解,整理了笔记。

     

     

    概念

    商业模式画布,是一个视觉化的商业模式分析工具,用来帮助企业进行发展预测分析,进行商业模式创新,以及确定战略规划。

     

     

    商业模式画布模块

    工具以九宫格的形式展示,但并非是标准的3*3九宫格,也称为商业模式画布的九个构造块。

    九宫格的内容及含义分别为:

    客户细分-CS:

     

    用来描述一个企业想要接触和服务的不同人群和组织。
    客户的类型可以分为大众市场,利基市场,区隔化市场,多元化市场,多边平台或多边市场。

     

    从使用纵向维度来区分,又可以从下往上,最低层级到最高层级,依次为使用者,影响者,推荐者,购买者,决策者。

     

    怎么理解这个纵向用户的层级呢?拿购买奶粉为例。

     

    • 对于超市里推着儿童车去买儿童奶粉的爸爸来说,小孩只是奶粉的使用者,因为他没有收入来源,没有决策能力,只有喝奶即使用的能力。
    • 而为小孩购买奶粉的爸爸则是购买者。
    • 但最终决策要为小孩买什么奶粉的,可能是妈妈,或者是每天在实际喂小孩喝奶粉的人。因为这个人会对小孩喝奶的情况进行观察,对市面上的奶粉进行甄别和筛选,从而决策要为小孩买什么品牌,什么阶段的奶粉合适。
    • 那么在妈妈进行选择和甄别的过程中,可能有亲朋好友进行奶粉的建议。那么亲朋好友就是影响者。
    • 假设妈妈在电视上或者其他地方看到某个明星妈妈代言的奶粉广告,处于对这个明星妈妈的信任,她也选择了其代言的奶粉。那么这个明星代言人则是推荐者。推荐者一般就是代言人和各种大V等等。


    通常情况下,由于决策者是在最高层级的,接下来是购买者。所以我们在进行业务谈判的时候要针对不同的业务去选择不同的对象进行谈判。
    对于To B的业务,比如说要把我们的服务器卖给一个公司,通常我们第一时间进行商务洽谈的对象会是购买者。那么如果有机会直接能与决策者对话,从上往下推动,事情会很难,但是会很有效。

     

    而对于To C的业务,则可以从下往上来推动。效果可能会比较好。

     

     

     

    价值主张-VP:
    用来描述为特定客户细分创造价值的系列产品和服务。
    它体现在新颖,性能,定制化,把事情做好,设计,品牌/身份地位,价格,成本降低,风险抑制,可达性,便利性/可用性。

     

    • 比如最常见的大米,有2-3元一斤的,提供的价值主张是,便宜、吃饱。而50-80元一斤的,提供的价值就是高端、尊贵。

     

    渠道通路-CH:

     

    用来描述公司是如何沟通,接触其客户细分而传递其价值主张。
    常用的渠道通路有直接渠道,非直接渠道,销售队伍,自有店铺,合作伙伴店铺,在线销售,批发商等等。

     

    • 比如苹果公司除了在线下有专卖店以外,线上官网也可以进行购物,另外苹果还有一些代理商。

     

    客户关系-CR:

     

    公司与特定客户细分群体建立的关系类型。

     

    常用的方式有会员制度,个人助理,专用个人助理,自助服务,自动化服务,社区,共同创造。

     

    • 会员积分是最常见的一种客户关系维系手段。比如航空公司的里程累积,可以兑换机票。超市里的购物积分,可以换取小礼物。

     

    核心资源-KR:

     

    让商业模式运转所必须的最重要因素
    比如说实体资产,知识资产,人力资源,金融资产。

     

     

    关键活动-KA:

     

    为了确保商业模式可行,企业必须做的作重要的事情。

     

    它包含制造产品,问题解决,平台/网络等。

      

    重要伙伴-KP:

     

    让商业模式运转所需的供应商和合作伙伴的网络
    从合作的动机上看,商业模式的优化和规模经纪的运用,风险和不确定性的降低,特定资源和业务的获取。

     

    从合作的类型上看:战略联盟(非竞争者之间的战略联盟关系),竞合(在竞争者之间的合作关系),合资,供应商等。

     

    成本结构-CS:
    运营一个商业模式所引发的所有成本。
    成本结构里包含固定成本,可变成本,市场费用,生产成本,技术授权,营运维护,财务成本等等。

    收入来源-RS:
    公司从每个客户群体获取的现金收入(包括一次性收入和经常性收入)。
    获取收入的方式包含资产销售,使用收费,订阅收费,租赁收费,授权收费,经纪收费,广告收费等等。

     

    • 资产销售比如公司之间的合并、收购等。
    • 使用收费在生活中最常见,我们平时吃的食物,去超市购物,都是为了买来使用,属于使用收费。
    • 订阅收费典型的例子是早期的报纸订阅,以及现在的在线鲜花订阅。
    • 租车租房就是标准的租赁收费,而目前的共享单车、合租公寓,是在租赁基础上的衍生。
    • 授权收费一般是建立在商家自身有强大的IP和影响力上,比如迪士尼、漫威就是典型的授权收费。这些商家,通过授权给一些T恤、公仔、玩具的制造商,将商品售卖之后的收入进行分成。
    • 房地产是最常见的经纪收费。
    • 广告收费也很好理解,比如很多软件是免费的,但是通过广告位竞价,来赚回软件开发过程中的投入。

     

    定价机制可以有固定定价和动态定价两种。


    一个企业如果要创新商业模式,可以在画布的所有或几个或一个格子里创新,任何新的商业模式,都可以由这9个构造块按不同逻辑重新排列组合得出。由于每个人的视角、关注和基础不一样,向各个构造块中填加的内容当然也不相同,于是就有了不同的商业模式。

     

     

    六种商业模式

    商业模式有六种形式:低成本商业模式,诱钓式商业模式,长尾式商业模式,多边平台式商业模式,免费式商业模式,封闭式商业模式。

    • 低成本式:典型的案例是廉价航空。无积分、环境差、托运行李、靠窗座位、连坐、餐饮和水都需要付费。
    • 诱钓式:诱钓式的结果时,连续性有获利和收入。典型的案例是雀巢奈斯派索胶囊咖啡。
    • 长尾式:专注于为利基市场提供大量产品,每种产品可以卖的很少。三个经济触发因素:生产工具大众化,分销渠道的大众化,链接供需双方的搜索成本不断下降。实例:Logo乐高。 
    • 多边平台式:将两个或者更多有明显区别但又相互依赖的客户群体集合到一起。建立一个平台,为不同的客户群体提供不同的价值主张并获得收入。实例:Google的商业模式(第三方网站的广告); 
    • 财务式投资:通过与外部伙伴系统性合作,来创造和捕捉价值,可以是“由外到内”,也可以是“由内到外”腾讯入股京东。
    • 封闭式平台:如苹果iphone和ios系统捆绑,并且不开源。
    • 免费式商业模式:至少一个庞大的客户群体可以享持续的免费服务。

     

    免费式服务模式又包含三种场景,分别是基于多边平台的免费产品或服务(比如内容服务型抖音和微信等);90%服务免费,10%增值服务收费(比如skype和一些开源工具等),(亚马逊KIindle,合约手机)。
     
    课程的结尾也有讲:
    商业模式创新不该止步于对现象的罗列归纳,他还该包括对未知新事物的创造。
    商业模式画布模型较适用于新产品开发、老产品重新设计、重新定位产品和价值链调整等问题,但它对如何去与执行让它产生效果、与同行竞争、规避商业风险等创新者困境问题指导意义不足。



    参考文献:
    英文原著:Business Model Generation
    “绘画艺术上的每一次变革,都是建立在对现实的重构的基础之上。画布、颜料和画笔并没有改变,而是艺术家认知世界的方式发生了改变。”----加里.哈默尔(Gary Hamel) 

     

    展开全文
  • 互联网商业画布

    2017-12-11 10:44:02
    互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布互联网商业画布...
  • WPF中Canvas画布怎么逐笔清除和清空画布? protected override void OnStrokeCollected(InkCanvasStrokeCollectedEventArgs e) { base.Strokes.Remove(e.Stroke); //使用此方法时,请删除之前添加到 InkCanvas ...
  • 现在我想在paint中加一个判断,是否重置画布,只有重置时才刷新整个画布,否则在原有基础上继续画,但这样出现了一个问题,其它弹出的组件会在画布上留下阴影(只能通过重新绘制画布背景去除,但我不想多次重画背景...
  • 1.在自定义的画布中实现可缩放手势,摇一摇可对控件进行整理排序; 2.画布中可以添加位置设定的控件,控件可以响应点击、长按、拖动事件; 3.控件A长按事件会隐藏画布中的控件除了A之外,显示另一个控件B;当A在在...
  • 验证码画布设计

    2012-11-12 18:57:23
    $im = imagecreatetruecolor(80,20); $bgcolor = imagecolorallocate($im,200,255,255);//调制背景色 $bordercolor = imagecolorallocate($im,0,0,255);//调制边框颜色 $tcolor = imagecolorallocate($im,255,0,0...
    <?php
    $im = imagecreatetruecolor(80,20);
    $bgcolor = imagecolorallocate($im,200,255,255);//调制背景色
    $bordercolor = imagecolorallocate($im,0,0,255);//调制边框颜色
    $tcolor = imagecolorallocate($im,255,0,0);
    $green = imagecolorallocate($im,0,255,0);
    imagefill($im,10,10,$bgcolor);//填充背景色
    imagerectangle($im,1,1,79,19,$bordercolor);//绘制边框
    for($i = 0;$i<4;$i++){
    $num_case = rand(0,2);//产生随机数0-2,根据数值的不同决定产生的是数字|小写|大写
    switch($num_case){
    case 0:$num = rand(48,57);break;//数字
    case 1:$num = rand(65,90);break;//大写
    default:$num = rand(79,122);//小写
    }
    $text[$i] = sprintf("%c",$num);//将随机产生的ASCIII码转换为相应字符
    imagettftext($im,rand(10,20),rand(0,30),15*$i+5,20,$tcolor,"STLITI.TTF",$text[$i]);}//显示字符
    for($i=0;$i<100;$i++){
    imagesetpixel($im,rand(1,79),rand(1,22),$green);
    }
    session_start();
    $_SESSION["ckcode"]=implode($text);
    header("Content-type:image/png");//设置输出类型
    imagepng($im);
    imagedestroy($im);
    展开全文
  • 需求是在滑动页面的情况下,各个组件不偏离,而且滑块可以单一的调节背景的透明度,而不调节画布的透明度。 我大致说一下我自己的做法,图片中,滑动时,组件不偏离的情况,是直接设置画布的view的...
  • Android自定义view实现画布,镜像画布,Android简单的主题颜色切换 下载前请先看效果图,确定是否是您想要的 效果图地址:http://blog.csdn.net/ink_s/article/details/79021904
  • android画布_Android画布

    2020-07-10 08:24:52
    android画布In this tutorial, we’ll be discussing a very important part of Android i.e. Canvas. It’s a territory which every developer prefers to stay away from. The reason for this tutorial is to ...

    android画布

    In this tutorial, we’ll be discussing a very important part of Android i.e. Canvas. It’s a territory which every developer prefers to stay away from. The reason for this tutorial is to make you more aware and at ease with the Android Canvas.

    在本教程中,我们将讨论Android的一个非常重要的部分,即Canvas。 这是每个开发人员都希望远离的领域。 本教程的目的是让您更加了解Android画布,并且更加放心。

    Android画布 (Android Canvas)

    Many times you end up in a scenario where you need to implement a custom View and/or animate it. It can happen that the requirements are so specific that you need to implement it from scratch. Canvas plays a vital role in building such Custom Views.

    很多时候,您最终会遇到需要实现自定义视图和/或对其进行动画处理的情况。 需求可能是如此具体,以至于您需要从头开始实施。 画布在构建此类自定义视图中起着至关重要的作用。

    A Canvas is a 2D drawing framework that provides us with methods to draw on the underlying Bitmap. A Bitmap acts as the surface over which the canvas is placed. The Paint class is used to provide colors and styles.

    Canvas是2D绘图框架,为我们提供了在底层位图上进行绘图的方法。 位图充当画布在其上放置的表面。 Paint类用于提供颜色和样式。

    Before we dig deep into Canvas, let’s look at the lifecycle of a Custom View.

    在深入研究Canvas之前,让我们看一下Custom View的生命周期。

    A Custom View consists of the following commonly used methods:

    自定义视图包含以下常用方法:

    onMeasure()
    onLayout()
    onDraw()

    Inside onMeasure we determine the size of the view and its children.

    onMeasure我们确定视图及其子视图的大小。

    Inside onLayout the size is assigned to the view.

    onLayout内部,将大小分配给视图。

    The onDraw method is where the canvas is drawn.

    onDraw方法是绘制画布的位置。

    A Canvas Object basically comes as a parameter inside the onDraw method.

    画布对象基本上是onDraw方法中的一个参数。

    The invalidate() method is used to redraw the view. It calls the onDraw method again. Typically, this is used when the text or color or view needs to be updated based on certain events.

    invalidate()方法用于重绘视图。 它再次调用onDraw方法。 通常,当需要根据某些事件更新文本或颜色或视图时,将使用此选项。

    The Canvas class contains methods to draw certain shapes just as line, arc, circle, over. Moreover, we can draw complex geometry too using Paths.

    Canvas类包含一些方法来绘制某些形状,例如直线,圆弧,圆形,上方。 此外,我们也可以使用Paths绘制复杂的几何图形。

    We can also draw text or just simply Paint color on the canvas too.

    我们也可以在画布上绘制文本或仅绘制颜色。

    Since canvas is drawn on the screen, views that are drawn need to be measured in terms of pixels (px).
    由于画布是在屏幕上绘制的,因此绘制的视图需要以像素(px)进行度量。

    Let’s look at how to draw basic stuff on Canvas through our sample android studio project.

    让我们看看如何通过示例Android Studio项目在Canvas上绘制基本内容。

    Android Canvas示例项目结构 (Android Canvas Example Project Structure)

    Android Canvas Basics Project

    Android Canvas Example Project

    Android Canvas示例项目

    To create a Path, two methods are important: moveTo() and lineTo().

    要创建路径,两个方法很重要: moveTo()lineTo()

    moveTo takes you to the coordinates you specify on the screen.

    moveTo将您带到您在屏幕上指定的坐标。

    lineTo draws a line from the current position to the one specified.

    lineTo从当前位置到指定位置绘制一条线。

    close() is used to close a path.

    close()用于关闭路径。

    画布坐标系如何工作? (How does the Canvas Coordinate System work?)

    In the canvas 0,0 is the top left point. As you move horizontally right the x coordinate increases.
    As you move vertically down the y coordinate increases in pixels.

    在画布中0,0是左上角。 当您向右水平移动时,x坐标会增加。
    当您垂直向下移动时,y坐标以像素为单位增加。

    Following diagram illustrates the same:

    下图说明了相同的内容:

    Android Canvas Coordinate System

    Android Canvas Coordinate System

    Android画布坐标系

    矩形与矩形 (Rect vs RectF)

    Rect object is used to create a rectangle in which each side is specified in integer value.
    RectF does the same but in float values.

    Rect对象用于创建一个矩形,其中每边均以整数值指定。
    RectF进行相同的操作,但使用浮点值。

    In the following example, we’ll see how to draw the various shapes and also use Paint to style them.

    在下面的示例中,我们将看到如何绘制各种形状以及如何使用Paint对其进行样式设置。

    Android Canvas示例代码 (Android Canvas Example Code)

    The code for the activity_main.xml layout is a basic root layout in which we’ll add our Canvas:

    activity_main.xml布局的代码是基本的根布局,我们将在其中添加Canvas:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
        xmlns:app="https://schemas.android.com/apk/res-auto"
        xmlns:tools="https://schemas.android.com/tools"
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" />

    The code for the MainActivity.java is given below:

    MainActivity.java的代码如下:

    package com.journaldev.androidcanvasbasics;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;
    
    public class MainActivity extends AppCompatActivity {
    
        LinearLayout linearLayout;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            linearLayout = findViewById(R.id.linearLayout);
            MyView myView = new MyView(this);
            linearLayout.addView(myView);
        }
    }

    The MyView class is where we create our Custom View. Let’s finally draw on the Canvas!

    MyView类是我们创建自定义视图的地方。 让我们终于在画布上画画!

    package com.journaldev.androidcanvasbasics;
    
    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.Path;
    import android.graphics.Point;
    import android.graphics.RectF;
    import android.graphics.Region;
    import android.util.DisplayMetrics;
    import android.view.View;
    
    public class MyView extends View {
    
        Paint mPaint, otherPaint, outerPaint, mTextPaint;
        RectF mRectF;
        int mPadding;
    
        float arcLeft, arcTop, arcRight, arcBottom;
    
        Path mPath;
    
    
        public MyView(Context context) {
            super(context);
    
            mPaint = new Paint();
            mPaint.setAntiAlias(true);
    
            mPaint.setStyle(Paint.Style.STROKE);
            mPaint.setColor(Color.BLUE);
            mPaint.setStrokeWidth(5);
    
    
            mTextPaint = new Paint(Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
            mTextPaint.setColor(Color.BLACK);
            mTextPaint.setTextSize(pxFromDp(context, 24));
    
            otherPaint = new Paint();
    
            outerPaint = new Paint();
            outerPaint.setStyle(Paint.Style.FILL);
            outerPaint.setColor(Color.YELLOW);
    
            mPadding = 100;
    
    
            DisplayMetrics displayMetrics = new DisplayMetrics();
    
            ((Activity) getContext()).getWindowManager()
                    .getDefaultDisplay()
                    .getMetrics(displayMetrics);
    
    
            int screenWidth = displayMetrics.widthPixels;
            int screenHeight = displayMetrics.heightPixels;
    
            arcLeft = pxFromDp(context, 20);
            arcTop = pxFromDp(context, 20);
            arcRight = pxFromDp(context, 100);
            arcBottom = pxFromDp(context, 100);
    
    
            Point p1 = new Point((int) pxFromDp(context, 80) + (screenWidth / 2), (int) pxFromDp(context, 40));
            Point p2 = new Point((int) pxFromDp(context, 40) + (screenWidth / 2), (int) pxFromDp(context, 80));
            Point p3 = new Point((int) pxFromDp(context, 120) + (screenWidth / 2), (int) pxFromDp(context, 80));
    
            mPath = new Path();
            mPath.moveTo(p1.x, p1.y);
            mPath.lineTo(p2.x, p2.y);
            mPath.lineTo(p3.x, p3.y);
            mPath.close();
    
            mRectF = new RectF(screenWidth / 4, screenHeight / 3, screenWidth / 6, screenHeight / 2);
    
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
    
            canvas.drawRoundRect(mRectF, 10, 10, otherPaint);
            canvas.clipRect(mRectF, Region.Op.DIFFERENCE);
            canvas.drawPaint(outerPaint);
    
            canvas.drawLine(250, 250, 400, 400, mPaint);
            canvas.drawRect(mPadding, mPadding, getWidth() - mPadding, getHeight() - mPadding, mPaint);
            canvas.drawArc(arcLeft, arcTop, arcRight, arcBottom, 75, 45, true, mPaint);
    
    
            otherPaint.setColor(Color.GREEN);
            otherPaint.setStyle(Paint.Style.FILL);
    
            canvas.drawRect(
                    getLeft() + (getRight() - getLeft()) / 3,
                    getTop() + (getBottom() - getTop()) / 3,
                    getRight() - (getRight() - getLeft()) / 3,
                    getBottom() - (getBottom() - getTop()) / 3, otherPaint);
    
    
            canvas.drawPath(mPath, mPaint);
            otherPaint.setColor(Color.BLACK);
            canvas.drawCircle(getWidth() / 2, getHeight() / 2, arcLeft, otherPaint);
    
            canvas.drawText("Canvas basics", (float) (getWidth() * 0.3), (float) (getHeight() * 0.8), mTextPaint);
    
        }
    
    
        public static float pxFromDp(final Context context, final float dp) {
            return dp * context.getResources().getDisplayMetrics().density;
        }
    
    }

    pxFromDp method is used to get the pixel equivalent of the dp value passed.

    pxFromDp方法用于获取与传递的dp值等效的像素。

    canvas.drawLine(250, 250, 400, 400, mPaint); simply draws a line from x1 y1 to x2 y2.

    canvas.drawLine(250, 250, 400, 400, mPaint); 只需从x1 y1到x2 y2画一条线。

    The following code is used to draw a rectangle at the center of the screen.

    以下代码用于在屏幕中心绘制一个矩形。

    canvas.drawRect(
                    getLeft() + (getRight() - getLeft()) / 3,
                    getTop() + (getBottom() - getTop()) / 3,
                    getRight() - (getRight() - getLeft()) / 3,
                    getBottom() - (getBottom() - getTop()) / 3, otherPaint);

    Inside the drawCircle method, the first two parameters passed are the coordinates of the center of the circle. The third parameter sets the radius for the circle.

    drawCircle方法内部,传递的前两个参数是圆心的坐标。 第三个参数设置圆的半径。

    clipRect clips the canvas with the rectangle. The last parameter sets the clipping region style.

    clipRect用矩形clipRect画布。 最后一个参数设置裁剪区域样式。

    Region.Op.DIFFERENCE sets the Paint on the region between the canvas and the rectangle specified in the clipRect method.

    Region.Op.DIFFERENCE将Paint设置在clipRect方法中指定的画布和矩形之间的区域上。

    Inside the drawText method the two float values set the origin position of the text. We’ve set it at 30 percent from the left and 80 % from the top of the screen.

    drawText方法内部,两个float值设置文本的原点位置。 我们将其设置为屏幕左侧的30%和屏幕顶部的80%。

    Why is Anti Alias flag needed in Paint?为什么在Paint中需要使用抗别名标志?
    An Anti alias flag ensures that the shape is smooth.
    反别名标志可确保形状平滑。

    How are the different shapes drawn on the canvas positioned relative to each other?

    画布上绘制的不同形状如何相对定位?

    画布Z顺序 (Canvas Z-Order)

    Elements are arranged on top of each other in the order in which they are drawn. Similar to a frame layout based on the z-order.

    元素按绘制顺序彼此排列。 类似于基于z顺序的框架布局。

    The output of the above application is given below:

    以上应用程序的输出如下:

    Android Canvas Basics Output 1

    Android Canvas Basics Output 1

    Android Canvas基础输出1

    Android Canvas Basics Output 2

    Android Canvas Basics Output 2

    Android Canvas基础输出2

    That brings an end to this tutorial. You can download the project from the link below:

    这样就结束了本教程。 您可以从下面的链接下载项目:

    翻译自: https://www.journaldev.com/25182/android-canvas

    android画布

    展开全文
  • 目前基本的思路是将view中的内容传到画布中去,然后将画布生成图片保存到手机里。有没有人实现了的,求指点![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/83.gif)。如果这种办法行...
  • 商业画布模板

    2017-06-14 12:48:01
    商业画布模板
  • H5 画布解决跨域问题

    千次阅读 2020-10-23 00:59:53
    实现功能:uniapp H5 使用画布,本地图片放到画布里面绘画,网络图片放到画布里面绘画 注:可以把图片转成base64,在线转换 下面看代码: 代码解析:avatar 是头像地址,用pathToBase64 转成Base64 ,base64_aimg...
  • 商业画布

    千次阅读 2019-09-03 10:54:22
    什么是商业画布商业模式画布指一种能够帮助团队催生创意、降低猜测、确保他们找对了目标用户、合理解决问题的工具。商业模式画布使得商业模式可视化,使用统一的语言讨论不同商业领域。商业模式画布不仅能够提供更多...
  • blender2.8旋转画布功能

    2018-12-09 15:45:15
    在blender中实现画布旋转功能,可以将文件打开后再保存至启动配置中,就可以启动即享旋转画布功能,同理也可以链接文件等等,最后附上教程地址:https://blog.csdn.net/qq_23395083/article/details/84928625
  • HTML5 保存画布

    2018-04-25 22:00:37
    保存画布好不容易在画布中绘制出酷炫的图形,应该把它保存起来吧。但不幸的是,画布中的这些图形本身不是真正的图片,不能直接保存。不幸中的万幸,Canvas API提供了toDataURL()方法,可以把画布中的图形转换为图片...
  • three 画布 添加图片

    2016-10-01 03:54:20
    最近做一个项目,我现在是用html5添加了一个画布,然后在画布上面添加一层img来显示另外的图片。图片是通过调用文件管理来选取的。但是图片添加上去后点击画布的任何位置添加的图片消失 了。经测试图片并没有放到最...
  • 效果图(下面两个图都是随机显示24的圆圈在画布上面) 实现代码 <!--pages/test2/test2.wxml--> <canvas style="width: 100%; height:700rpx;" canvas-id="myCanvas"></can...
  • 精益画布和商业模式画布

    千次阅读 2018-05-16 22:05:24
    1 商业模式画布,关心的: 1) 重要伙伴 2)关键业务 3)核心资源 4)价值主张 5)客户关系 6)渠道通路 7)客户细分 8)成本结构 9)收入来源 2) 精益画布 1)问题 2) 解决方案 3)...
  • HTML5画布时钟

    2013-12-11 18:44:27
    用HTML5的画布结合JQUERY以及CSS3.0的翻转制作的时钟,可以随时和系统时间保持一致,包括随时刷新也不影响
  • 创建画布

    千次阅读 2016-05-16 18:00:54
    在开发Web项目时,图片是前台页面不可缺少的组成部分,传统...创建画布  GD2函数库在图形图像绘制方面功能非常强大,开发人员即可以在已有的图片的基础上经行绘制,也可以在没有任何素材的基础上绘制,在这种情况下
  • 开源画布

    2020-03-06 22:44:02
    一、G6 G6 是一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。旨在让关系变得透明,简单。让用户获得关系数据的 Insight。 开源地址:G6 二、Graphin Graphin 取名意为 Graph ...
  • Canvas画布

    千次阅读 2012-08-10 15:28:53
    Canvas():创建一个空白画布可以使用setBitmap设置绘制具体的画布 Canvas(Bitmap bitmap):已bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不能为NULL Canvas(javax.microedition.khronos.opengl...
  • mxgraph 画布

    2019-09-27 09:01:15
    画布自动扩大/缩小计算: //得到所拖拽图形相对于画布的位置(-880,-100) var x = Math.ceil(bounds.x / this.view.scale - this.view.translate.x); var y = Math.ceil(bounds.y / this.view.scale - this....
  • HTML 画布

    2018-05-09 15:29:51
    颜色、样式和阴影   属性 描述 fillStyle 设置或返回用于填充绘画的颜色、渐变或模式。 strokeStyle 设置或返回用于笔触的颜色、渐变或模式。... 设置或返回用于阴影的颜色。... sha...
  • css画布

    2016-07-21 13:07:13
    canvas 本意则就是画布的意思, 我们来看一看 canvas的属性 和方法 属性 描述 fillStyle 设置或返回用于填充绘画的颜色、渐变或模式 strokeStyle 设置或返回用于...

空空如也

1 2 3 4 5 ... 20
收藏数 21,691
精华内容 8,676
关键字:

画布