首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

自定义控件-虚线

2012-08-29 
自定义控件--虚线注解:转载自http://407827531.iteye.com/blog/949128。下面是经过本人编译后的代码。在Andr

自定义控件--虚线
注解:转载自http://407827531.iteye.com/blog/949128。
      下面是经过本人编译后的代码。

在Android的UI开发中,有时为了界面美观而需要虚线。

Java代码 
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.util.AttributeSet;
import android.view.View;
   /** 
    * 画虚线组件  
    */ 
public DashedLine(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

@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(30, 5); //从什么地方开始,(x、y 的坐标)
path.lineTo(320, 5);//到什么地方结束
/*
*看到这里时,想让它居中显示,但不知道Path 中的哪个属性可用,
*就从开始处到结束处入手了。有朋友知道的请告诉在下,共同学习
*/

PathEffect effects = new DashPathEffect(new float[] { 5, 5, 5, 5 }, 1);
paint.setPathEffect(effects); //Set or clear the patheffect object
/* 例如:
* new float[]{10, 4, 6, 4}。
* 这4个值分别是长线段的长度(10)、长线段与短线段的距离(4)、
* 短线段的长度(6)和短线段与长线段的距离(4)。
* (本例线段长都一样)
* 后面的一个参数为1 :offset into the intervals array
* 我试着将其改为0时没有什么效果,不明白。
*/

canvas.drawPath(path, paint);
/* 其中path参数表示用于绘制路径的轨迹
* paint参数用于指定路径的属性,例如,可以指定路径的颜色等
*/
}


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

Java代码 
<com.test.view.DashedLine
android:id="@+id/dashedLine"
android:layout_width="wrap_content"
android:layout_height="10px"   />
/*
* 高度可以调整到合适的需求
*/ 1 楼 dahui12344321 2011-04-11   找时间试试

热点排行