<!doctype html>
<style type="text/css" media="screen, print">
@font-face {
font-family: "Automania";
src: url("Automaniattf");
}
</style>
<script type="text/javascript">
function draw() {
var ctx = documentgetElementById('shuipai')getContext('2d');
var img = new Image();
imgonload = function(){
ctxdrawImage(img,0,0);
ctxbeginPath();
ctxfillStyle = '#000';
ctxfont = "60px Automania";
ctxtextBaseline = 'top';
ctxfillText('what this font looks', 0, 5);
ctxstroke();
}
imgsrc = '>
Canvas相当于画布,字体的大小格式在Paint上设置才正确, Paint 相当于画笔。代码如下,没有具体参数:
Paint paint = new Paint();
paintsetTextSize(textSize);//设置字体大小
paintsetTypeface(typeface);//设置字体类型
canvasdrawText(text, x, y, paint);//使用画笔paint
@Override
public void onDraw (Canvas canvas) {
Rect targetRect = new Rect(50, 50, 1000, 200);
Paint paint = new Paint(PaintANTI_ALIAS_FLAG);
paintsetStrokeWidth(3);
paintsetTextSize(80);
String testString = "测试:ijkJQKA:1234";
paintsetColor(ColorCYAN);
canvasdrawRect(targetRect, paint);
paintsetColor(ColorRED);
FontMetricsInt fontMetrics = paintgetFontMetricsInt();
扩展资料:
Screen Space - Camera
此模式类似Screen Space - Overlay,但区别是此模式将Canvas放置于某个Camera前固定距离。此Camera负责渲染所有UI元素,则摄像机参数(Camera Settings)直接影响UI表现。
比如Camera是透视模式(Perspective),则UI元素会基于Field of View的值而扭曲变形。同样的,若屏幕分辨率变更,或者视觉平截体(CameraFrustrum)改变,则Canvas自动调整自身尺寸作自适应。
参考资料来源:百度百科-canvas
var canvas = documentgetElementById("demoCanvas"); 获取canvas元素
ctx = canvasDomgetContext('2d'); 获取上下文
ctxmoveTo(0,0) 设置起始点
ctxlineTo(100,100) 设置终点
ctxlineWidth = 8; 线宽度
ctxstrokeStyle = "red" 设置颜色
ctxstroke() 显示
ctxfillStyle = "pink"; 填充色
ctxfill() 填充
ctxclosePath() 结束
ctxbeginPath(); 开启一个新状态绘图
ctxrect(x,y,w,h) 绘制一个矩形 //前两参数起始点坐标,后两参数宽高
ctxstrokerect(x,y,w,h) 直接显示矩形,不需要ctxstroke()
ctxfillrect() 被填充直接显示的矩形
ctxclearRect(x,y,w,h) 清除矩形 --重要
ctxarc(x,y,sAngle,eAngle,count) //绘制圆形 x坐标/y坐标/半径/绘制开始角度/绘制结束角度/逆时针绘制
ctxshadowColor="tael" 设置阴影的颜色
ctxshadowBlur=10 设置阴影模糊级别
ctxshadowOffsetX=10 设置阴影距离形状的水平距离
ctxshadowOffsetY=10 设置阴影距离形状的垂直距离
(少用,性能比较差,尽量让UI做)
var grd=ctxcreateLinearGradient(0,0,170,0) 创建一个线性渐变,参数,两个点坐标
grdaddColorStop(0,'pink') // 添加一个新的渐变色
grdaddColorStop(1,'pink') // 添加一个新的渐变色
ctxfillstyle = grd 把渐变设置到填充样式
ctxfillRect(0,0,300,300) 创建一个矩形
ctxtranslate(200,200) 把当前画布移动到坐标点
ctxrotate(30MathPI/180) 旋转画布,参数为度数
ctxscale(2,2) 画布缩小或放大,参数倍数
ctxglobalAlpha=03 设置画布透明度
ctxsave() 把当前上下文状态保存起来
ctxrestore() 把之前保存画布的状态还原
ctxtoDataURL('img',1) 画布保存为base64编码
ctxdrawImage(canvas1,10,10) 把一个画布放到另一个画布上,可以让canvas优化
ctxarcTo(240,100,240,110,40) //做圆角用 端点1坐标,端点2坐标,半径
Konva库的使用
public void drawText(@NonNull String text, float x, float y, @NonNull Paint paint)
绘制文本的时候,参数X,Y并不是绘制的起点,而是文字的底部 比如
绘制A , 这个x,y 是A的左下角的坐标,下图 baseline起点,而不是右上角的坐标。
获取text的长度 使用 paintmeasureText(text); 方法测量文本的长度
获取text的高度 使用float height = paintascent()+paintdescent(); 获取。
关于字体参数可以查看下面。
以上就是关于使用CSS3的@font-face嵌入字体后,怎样在HTML5中的CANVAS调用全部的内容,包括:使用CSS3的@font-face嵌入字体后,怎样在HTML5中的CANVAS调用、canvas属性方法整理、android canvas的drawText方法 如何设置字体大小和格式。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)