public class DashedLineView extends View { public DashedLineView(Context context, AttributeSet attrs) { super (context, attrs); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super .onDraw(canvas); Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(Color.DKGRAY); Path path = new Path(); path.moveTo(0, 10); path.lineTo(480,10); PathEffect effects = new DashPathEffect( new float[]{5,5,5,5},1); paint.setPathEffect(effects); canvas.drawPath(path, paint); } } <com.android.pennote.DashedLineView android:layout_height= "20px" android:id= "@+id/dashed" android:layout_width= "wrap_content" />
----------------------------------------------------------------------------------------------------------------

画笔样式分三种:

1.Paint.Style.STROKE:描边

2.Paint.Style.FILL_AND_STROKE:描边并填充

3.Paint.Style.FILL:填充


lineTo(float x, float y)方法:

lineTo(float x, float y)方法用于从当前轮廓点绘制一条线段到x,y点:


从原点开始绘制一条折线,代码如下:

Path path = new Path();path.lineTo(100,100); path.lineTo(100, 200); path.lineTo(150, 250); canvas.drawPath(path, paint);

默认从0,0点开始

moveTo(float x, float y)方法:

path的moveTo方法将起始轮廓点移至x,y坐标点,默认情况为0,0点

使用moveTo设置轮廓点:代码如下:

Path path = new Path();

path.moveTo(20, 200);path.lineTo(50, 200);path.lineTo(100, 300); path.lineTo(200, 350); canvas.drawPath(path, paint);

PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1);

第一个参数是一个浮点型的整数,我们在定义该参数的时候只要浮点型数组中的元素个数大于等于2即可。例如:

float[] {20, 10}的偶数参数20(注意数组下标是从0开始哦)定义了我们第一条实线的长度,而奇数参数10则表示第一条虚线的长度,如果此时数组后面不再有数据则重复第一个数以此往复循环,整条线就成了[20,10,20,10,20,10…………………………]这么一个状态。

而DashPathEffect的第二个参数(phase)我称之为偏移值,动态改变其值会让路径产生动画的效果

更多相关文章

  1. 自定义Android(安卓)ORM 框架greenDAO数据库文件的路径
  2. Android(安卓)EditText简单实现右侧点击清除
  3. RXjava+Retrofit二级购物车
  4. Scroller startScroll() fling() 参数详解
  5. Android(安卓)获取手机应用信息
  6. 关于Listview的一个没有notifyDataSetChanged导致的错误
  7. Robotium 常用方法
  8. Android上下文Context全解析
  9. Android:UI更新方法二:View.postInvalidate+Thread+Runnable

随机推荐

  1. PHP开源项目网址大全
  2. Flex术语 属性总结
  3. 2021年全自动最新引流神器大数据获客系统
  4. Ajax的get,post请求
  5. 轮播图和懒加载
  6. jQuery常用方法
  7. $.get,$.post,$ajax与Vue基本术语
  8. Vue常用指令及方法
  9. Jquery 与 原生 js的对比
  10. Vue组件及路由