使用View绘制虚线时demo,方便复习
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点:
从原点开始绘制一条折线,代码如下:
默认从0,0点开始Path path = new Path();path.lineTo(100,100); path.lineTo(100, 200); path.lineTo(150, 250); canvas.drawPath(path, paint);
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)我称之为偏移值,动态改变其值会让路径产生动画的效果
更多相关文章
- 自定义Android(安卓)ORM 框架greenDAO数据库文件的路径
- Android(安卓)EditText简单实现右侧点击清除
- RXjava+Retrofit二级购物车
- Scroller startScroll() fling() 参数详解
- Android(安卓)获取手机应用信息
- 关于Listview的一个没有notifyDataSetChanged导致的错误
- Robotium 常用方法
- Android上下文Context全解析
- Android:UI更新方法二:View.postInvalidate+Thread+Runnable