使用View绘制虚线时demo,方便复习

来源:互联网 发布:淘宝长尾词2017 编辑:程序博客网 时间:2024/04/30 13:09
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 =newPaint(); 
        paint.setStyle(Paint.Style.STROKE); 
        paint.setColor(Color.DKGRAY); 
        Path path =newPath();      
        path.moveTo(0, 10); 
        path.lineTo(480,10);       
        PathEffect effects =newDashPathEffect(newfloat[]{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(newfloat[]{5,5,5,5},1);

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

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

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


Android技术交流群:284128443

1 0
原创粉丝点击