Android之 drawTextOnpath
2016-06-25 00:46
423 查看
Android的 Canvas还提供了一个drawTextOnpath ( )方法
package com.test.pathactivity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class PathTextActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_path_text); setContentView(new MyTextView(this)); } class MyTextView extends View{ public static final String DRAW_TEXT = "疯狂Android讲义"; Path[] mPath = new Path[3]; Paint mPaint; public MyTextView(Context context) { super(context); mPath[0] = new Path(); mPath[0].moveTo(0,0); for (int i = 0; i < 7; i++) { //生成 7个点 随机生成他们的 Y坐标, 并将他们连接成一条 path mPath[0].lineTo(i*30, (float) (Math.random()*30)); } mPath[1] = new Path(); RectF rectF = new RectF(0,0,200,150); mPath[1].addOval(rectF,Path.Direction.CCW); mPath[2] = new Path(); mPath[2].addArc(rectF,60,180); //初始化画笔 mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setColor(Color.BLUE); mPaint.setStrokeWidth(5); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.WHITE); canvas.translate(150,50); //设置从右边开始绘制 (右对齐) mPaint.setTextAlign(Paint.Align.RIGHT); mPaint.setTextSize(22); //绘制路径 mPaint.setStyle(Paint.Style.STROKE); canvas.drawPath(mPath[0],mPaint); //沿着路径绘制一段文本 mPaint.setStyle(Paint.Style.FILL); canvas.drawTextOnPath(DRAW_TEXT, mPath[0], -8,20,mPaint); //对 canvas 进行坐标转换: 画布下移 canvas.translate(0,60); //绘制路径 mPaint.setStyle(Paint.Style.STROKE); canvas.drawPath(mPath[1],mPaint); //沿着路径绘制一段文本 mPaint.setStyle(Paint.Style.FILL); canvas.drawTextOnPath(DRAW_TEXT, mPath[1], 20,20,mPaint); //对 canvas 进行坐标转换: 画布下移120 canvas.translate(0,120); //绘制路径 mPaint.setStyle(Paint.Style.STROKE); canvas.drawPath(mPath[2],mPaint); //沿着路径绘制一段文本 mPaint.setStyle(Paint.Style.FILL); canvas.drawTextOnPath(DRAW_TEXT, mPath[2], 10,20,mPaint); } } }
相关文章推荐
- Android自定义Dialog动画入场
- Android support library支持包常用控件介绍(一)
- Activity中configChanges属性的用法
- ListView滑动不爽,滚动一页得滑几次?该用分页列表啦!
- Android Studio 小技巧(1):如何导入AAR文件
- Android Studio 小技巧(1):如何导入AAR文件
- android监听软键盘回车键并且解决默认点击两次的问题
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android之Widget
- Android启动另一个Activity时无法执行语句解决办法之加载延迟
- Unknown host 'downloads.gradle.org'
- Android之SwipeRefreshLayout下拉刷新控件
- SlidingDrawerLayout上下滑动的菜单控件
- Android Tips
- Android开发--CardView使用
- Android studio 目录结构
- Android使用achart绘图框架出现java.lang.NoClassDefFoundError错误解决方式
- Android Studio:如何使用Android Studio与夜神模拟器开发调试
- AndroidStudio使用技巧
- <Android 基础(七)> DrawerLayout and NavigationView