正文  UI设计 > AlarmManager >

Android自定义画虚线的控件

在Android的UI开发中,有时为了界面美观而需要使用虚线。在这里我自己实现一个画虚线的控件。package com.custom; import android.content.Context; import android.graphics.Canvas; import android.gra......

在Android的UI开发中,有时为了界面美观而需要使用虚线。在这里我自己实现一个画虚线的控件。

package com.custom;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PathEffect;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
 
public class DashedLine extends View {
private final String namespace = "http://www.android100.org/";
 
private float startX;
private float startY;
private float endX;
private float endY;
private Rect mRect;
 
public DashedLine(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);
}
}

在layout文件夹下的xml引用这个控件。

<com.custom.DashedLine
android:id="@+id/dashedLine"
android:layout_width="wrap_content"
android:layout_height="20px"
/>