canvas之文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas之文本相关的知识,希望对你有一定的参考价值。

参考技术A

使用 canvas 绘制文本,重要的属性和方法如下:

示例:

有更多的属性可以让你改变canvas显示文本的方式:

(1)font 字体样式

(2)textAlign文本的对齐方式

语法:ctx.textAlign = "left" || "right" || "center" || "start" || "end";
注意: 该对齐是基于CanvasRenderingContext2D.fillText方法的x的值。

有效值:

(3)textBaseline 文本基线,决定文字垂直方向的对齐方式。

有效值:

(4)direction 当前文本方向(此功能某些浏览器尚在开发中)

有效值:

其它文章请访问:

参考: 路径-CanvasAPI|MDN

Android学习笔记技巧之给文本加边框

技术分享

BorderTextViews.Java

  1. package xiaosi.BorderTextView;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Color;  
  6. import android.graphics.Paint;  
  7. import android.util.AttributeSet;  
  8. import android.widget.TextView;  
  9.   
  10. public class BorderTextViews extends TextView  
  11. {  
  12.     private Paint paint = null;  
  13.     private int color = Color.GRAY;  
  14.     public BorderTextViews(Context context, AttributeSet attrs)  
  15.     {  
  16.         super(context, attrs);  
  17.     }  
  18.     //设置边框颜色  
  19.     public void setPaintColor(int color){  
  20.         this.color = color;  
  21.     }  
  22.     @Override  
  23.     protected void onDraw(Canvas canvas)  
  24.     {  
  25.         super.onDraw(canvas);  
  26.         paint = new Paint();  
  27.         //给边框设置颜色  
  28.         paint.setColor(color);  
  29.         //上  
  30.         canvas.drawLine(0, 0, this.getWidth()-1, 0, paint);  
  31.         //左  
  32.         canvas.drawLine(0, 0, 0, this.getHeight()-1, paint);  
  33.         //下  
  34.         canvas.drawLine(0, this.getHeight()-1, this.getWidth()-1, this.getHeight()-1, paint);  
  35.         //右  
  36.         canvas.drawLine(this.getWidth()-1, 0, this.getWidth()-1, this.getHeight()-1, paint);  
  37.     }  
  38. }  

 

  1. package xiaosi.BorderTextView;  
  2.   
  3. import android.app.Activity;  
  4. import android.graphics.Color;  
  5. import android.os.Bundle;  
  6.   
  7. public class BorderTextViewActivity extends Activity {  
  8.     /** Called when the activity is first created. */  
  9.     private BorderTextViews borderTextView = null;  
  10.     @Override  
  11.     public void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.main);  
  14.         borderTextView = (BorderTextViews)findViewById(R.id.Border);  
  15.         borderTextView.setPaintColor(Color.GRAY);  
  16.     }  
  17. }  


 

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical"   
  6.     android:background="#CCFF66">  
  7.   
  8.     <xiaosi.BorderTextView.BorderTextViews  
  9.         android:id="@+id/Border"  
  10.         android:layout_width="wrap_content"   
  11.         android:layout_height="wrap_content"  
  12.         android:textColor="#C71585"   
  13.         android:layout_marginTop="20dp"  
  14.         android:padding="10dp"   
  15.         android:layout_gravity="center"   
  16.         android:text="在画布上画边框" />  
  17.   
  18. </LinearLayout>  

 


以上是关于canvas之文本的主要内容,如果未能解决你的问题,请参考以下文章

canvas文本自动换行

canvas之渐变

微信小程序 canvas绘制多行文本(文本换行)

canvas练手项目——Canvas中的Text文本

J2me里如何实现在canvas上添加文本框

canvas(四) 绘制文字