自定义控件--虚线

来源:互联网 发布:不让电脑安装软件 编辑:程序博客网 时间:2024/05/17 07:53
在Android的UI开发中,有时为了界面美观而需要虚线。 
Java代码  收藏代码
  1. package com.custom;  
  2.   
  3.    import android.content.Context;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Color;  
  6. import android.graphics.DashPathEffect;  
  7. import android.graphics.Paint;  
  8. import android.graphics.Path;  
  9. import android.graphics.PathEffect;  
  10. import android.graphics.Rect;  
  11. import android.util.AttributeSet;  
  12. import android.util.DisplayMetrics;  
  13. import android.util.Log;  
  14. import android.view.View;  
  15. /** 
  16.  * 画虚线组件 
  17.  * @author linweidong 
  18.  * @Date   2010-09-15 
  19.  */  
  20. public class DashedLine extends View {  
  21.     private final String namespace = "http://com.smartmap.driverbook";  
  22.     private float startX;  
  23.     private float startY;  
  24.     private float endX;  
  25.     private float endY;  
  26.     private Rect mRect;  
  27.     
  28.     public DashedLine(Context context, AttributeSet attrs) {  
  29.         super(context, attrs);            
  30.           
  31.     }  
  32.   
  33.     @Override  
  34.     protected void onDraw(Canvas canvas) {  
  35.         // TODO Auto-generated method stub  
  36.         super.onDraw(canvas);          
  37.         Paint paint = new Paint();  
  38.         paint.setStyle(Paint.Style.STROKE);  
  39.         paint.setColor(Color.DKGRAY);  
  40.         Path path = new Path();       
  41.         path.moveTo(010);  
  42.         path.lineTo(480,10);        
  43.         PathEffect effects = new DashPathEffect(new float[]{5,5,5,5},1);  
  44.         paint.setPathEffect(effects);  
  45.         canvas.drawPath(path, paint);  
  46.     }  

在layout文件夹下的xml引用这个控件 
Java代码  收藏代码
  1. <com.custom.DashedLine   
  2.      android:id="@+id/dashedLine"  
  3.      android:layout_width="wrap_content"           
  4.      android:layout_height="20px"                
  5.                       
  6.       />