当前位置: 首页 > news >正文

天津网站建设培训学校/信息流广告公司排名

天津网站建设培训学校,信息流广告公司排名,国内产品网站,网站反链怎么做项目中有时候会用到虚线,怎么办?drawable下创建一个shape类型的xml文件绘制,然后引用到view的background下?如果用到虚线的地方很多呢?创建多个,分别引用?横向的还好说,竖向的呢&…

项目中有时候会用到虚线,怎么办?drawable下创建一个shape类型的xml文件绘制,然后引用到view的background下?如果用到虚线的地方很多呢?创建多个,分别引用?横向的还好说,竖向的呢?垂直的虚线,普通的创建是显示不出来的,如果需要,就要进行旋转等的操作。但是,还是那个问题,需要很多个怎么办?挨个创建?

完全没必要,写个自定义,对外暴露设置虚线属性的方法就行。源码如下:

最后的说明很重要!!!

最后的说明很重要!!!

最后的说明很重要!!!

效果图:

aacadfd2a3eb104952c586b6edab37e7.png

源码:

ImaginaryLineView

package com.chen.demo;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.DashPathEffect;

import android.graphics.Paint;

import android.graphics.Path;

import android.graphics.PathEffect;

import android.support.annotation.Nullable;

import android.util.AttributeSet;

import android.view.View;

/**

* 自定义垂直虚线view

* chenjianqiang

* 2017/6/14

*

* 使用方法:

* 在代码中findview之后,调用setLineAttribute方法,自定义虚线颜色及宽度

*/

public class ImaginaryLineView extends View {

private Context ct;

private Paint mPaint;

private Path mPath;

private PathEffect effects;

private int width;

private int height;

private int defaultColor=0xffff0000;

public ImaginaryLineView(Context context) {

this(context, null);

}

public ImaginaryLineView(Context context, @Nullable AttributeSet attrs) {

this(context, attrs, -1);

}

public ImaginaryLineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

ct = context;

init();

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

super.onSizeChanged(w, h, oldw, oldh);

width = w;

height = h;

}

private void init() {

//初始化,并打开抗锯齿

mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

mPaint.setStyle(Paint.Style.STROKE);

mPaint.setColor(defaultColor);

mPaint.setStrokeWidth(dip2px(ct, 1));

mPath = new Path();

//数组含义:里面最少要有2个值,值的个数必须是偶数个。偶数位(包含0),表示实线长度,奇数位表示断开的长度

effects = new DashPathEffect(new float[]{4, 2}, 0);

}

/**

* 设置线的必要属性

*

* @param color 十六进制颜色值

* @param lineWidth 虚线宽度,单位是dp

*/

public void setLineAttribute(int color, float lineWidth,float[] f) {

if (color == 0) {

color = defaultColor;

}

if (lineWidth == 0) {

lineWidth = 1;

}

if(f==null){

f=new float[]{4,2};

}

effects = new DashPathEffect(f, 0);

mPaint.setStrokeWidth(dip2px(ct, lineWidth));

mPaint.setColor(color);

invalidate();

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

//定义起点

mPath.moveTo(0, 0);

//定义终点

if(width>height){

//宽度比高度大,是横线

mPath.lineTo(width, 0);

}else{

//竖线。(根据实际情况,这里不考虑宽高相等情况)

mPath.lineTo(0, height);

}

mPaint.setPathEffect(effects);

canvas.drawPath(mPath, mPaint);

}

private static int dip2px(Context context, float dpValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dpValue * scale + 0.5f);

}

}

http://www.lbrq.cn/news/1241659.html

相关文章:

  • dedecms导入网站模板/网络舆情的网站
  • asp.net做三个网站/软文广告发稿
  • 字体设计图片/佛山seo联系方式
  • 网站制作工具 织梦/国内网络销售平台有哪些
  • 图片制作在线生成器免费版/宁波网络推广优化公司
  • 南昌网站开发公司电话/杭州seo公司排名
  • 建筑公司转让/武汉seo公司
  • 兼职做网站这样的网站/网络推广外包哪家好
  • 网上做代销上哪个网站/友情链接2598
  • 一个企业做网站的目的/域名备案查询
  • 用html做企业门户网站/企业qq
  • 网站建设佰金手指科捷一/北京网站建设开发公司
  • 在线营销型网站/优化网站排名费用
  • 深圳住房和建设局网站富士锦园/开平网站设计
  • 哪类型网站容易做/网站排名优化制作
  • 深圳网站建设者/seo怎么收费的
  • 如何建设网站app/网站制作工具
  • 个人做网站要注意什么/手机百度提交入口
  • 东莞公司网站制作/个人网站建设
  • 深圳哪家做网站好/社群营销的具体方法
  • 长宁区网站设计建设/推广方案策划
  • 上海的广告公司网站建设/长沙做引流推广的公司
  • 顺德高端网站/西安百度关键词优化
  • 杭州企业网站建设 哪里好/seo搜索优化
  • 东莞深圳网站建设/seo l
  • 电白网站建设公司/网络营销推广的基本手段
  • 网站制作 西安/民生热点新闻
  • 简述网站建设基本流程/如何推广品牌
  • phpcms v9网站建设入门/重庆网站排名提升
  • r语言做网站/关键词seo排名怎么选
  • 计数组合学7.10(舒尔函数的组合定义)
  • 如何优雅删除Docker镜像和容器(保姆级别)
  • 开源工具FossFLOW,绘制技术图表
  • 9.1无法恢复的错误与 panic!
  • CSS font-weight:500不生效
  • HTML应用指南:利用POST请求获取全国公牛门店位置信息