利用canvas实现分隔虚线(自定义view)
来源:互联网 发布:点o是什么文件 linux 编辑:程序博客网 时间:2024/06/07 05:58
目前的app中,分隔线较为广泛使用,虚线的视觉效果又要优于实现,起始虚线的制作也很简单,只需要实现自定义view的基本步骤即可,本文只是侧重在画布canvas上实现虚线,所以省略了自定义view的style.xml实现。现在贴出java源码:
`package com.example.customviewdemo;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
/**
* Created by thompson on 16-11-7.
*/
public class MyView extends View {
private int defaultSize;
private int width;
private int height;
public MyView(Context context) { this(context,null);}public MyView(Context context, AttributeSet attrs) { super(context, attrs); defaultSize=100;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec,heightMeasureSpec); int width = getSize(widthMeasureSpec); int height = getSize(heightMeasureSpec); setMeasuredDimension(width, height);}//由于directionMeasureSpec包含测量模式和测量长度,所以这里进行提炼封装private int getSize(int measureSpec) { int defaultNum = defaultSize; int mode = MeasureSpec.getMode(measureSpec); int size = MeasureSpec.getSize(measureSpec); switch(mode){ case MeasureSpec.UNSPECIFIED: defaultNum = defaultSize; break; case MeasureSpec.AT_MOST: case MeasureSpec.EXACTLY: defaultNum = size; break; } return defaultNum;}@Overrideprotected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); width = w; height = h;}@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); //画笔设置 Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(2); paint.setColor(Color.BLUE); //步进数字18为线段长+俩线段间隔 for(int i=0;i<width;i+=18){ //drawLine(startPointX,startPointY,endPointX,endPointY,paint) //因为分隔线为水平方向所以起始点和终止点的Y值相等,X值相减=10为线段长度 canvas.drawLine(i, 100, i + 10, 100, paint); }}
}
`
0 0
- 利用canvas实现分隔虚线(自定义view)
- 通过自定义View实现虚线效果
- 自定义View:用Canvas实现转盘View
- Android 自定义虚线View
- 自定义view实践之虚线
- 自定义view--虚线的绘制
- 自学自定义view--画虚线
- android自定义水平虚线View
- 利用系统控件集合实现自定义view(自定义菜单)
- CSS HTML 实现虚线横线分隔线
- Android实现自定义虚线
- Android中图形的绘制-----自定义View(利用canvas和Path相结合)
- android自定义View---生成虚线的View
- android自定义View---生成虚线的View
- 自定义view(1)canvas使用
- 自定义view(三):onDraw 之 Canvas
- Android-view自定义-Canvas
- 自定义VIEW③Canvas
- Arcgis for Android在地图上画多边形并进行边长、周长和面积的测量
- GDB调试命令
- 如何进行服务器选购
- CSS表格部分写法
- 关于android中Activity之间添加信息的传递
- 利用canvas实现分隔虚线(自定义view)
- 导入Android项目缺少Support\v7报错
- 内存和缓存的区别
- 使用cfdisk 新建一个分区
- 通知公告TextSwitcher自动上下滚动带点击事件
- Netty之有效规避内存泄漏
- 学习笔记-mybatis数据处理的四种方式
- 简单分析hashmap 中的entryset()方法
- oracle数据库启动报错ORA-12560问题解决方法