新网创想网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Android怎么使用自定义view在指定时间内匀速画一条直线-创新互联

这篇文章给大家分享的是有关Android怎么使用自定义view在指定时间内匀速画一条直线的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联建站服务项目包括港闸网站建设、港闸网站制作、港闸网页制作以及港闸网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,港闸网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到港闸省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

具体如下:

1.效果图:

Android怎么使用自定义view在指定时间内匀速画一条直线

2.自定义view实现

public class UniformLine extends View { 
 private int x, y, nextX, nextY, incrementY, incrementX; 
 public UniformLine(Context context) { 
 super(context); 
 } 
 public UniformLine(Context context, int x, int y, int nextX, int nextY) { 
 super(context); 
 this.x = x; 
 this.y = y; 
 this.nextX = nextX; 
 this.nextY = nextY; 
 init(); 
 } 
 private void init() { 
 p = new Paint(); 
 p.setColor(Color.WHITE); 
 p.setAntiAlias(true); 
 p.setStrokeWidth(4.0f); 
 
 ValueAnimator valueAnimatorX = ValueAnimator.ofFloat(x, nextX); 
 valueAnimatorX.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
  @Override 
  public void onAnimationUpdate(ValueAnimator animation) { 
  incrementX = Math.round((Float) animation.getAnimatedValue()); 
  invalidate(); 
  } 
 }); 
 ValueAnimator valueAnimatorY = ValueAnimator.ofInt(y, nextY); 
 valueAnimatorY.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
  @Override 
  public void onAnimationUpdate(ValueAnimator animation) { 
  incrementY = (int) animation.getAnimatedValue(); 
  invalidate(); 
  } 
 }); 
 AnimatorSet animatorSet = new AnimatorSet(); 
 LinearInterpolator ll = new LinearInterpolator(); 
 animatorSet.setInterpolator(ll);//匀速 
 animatorSet.setDuration(2000); 
 animatorSet.playTogether(valueAnimatorX, valueAnimatorY); 
 animatorSet.start(); 
 } 
 Paint p; 
 @Override 
 protected void onDraw(Canvas canvas) { 
 super.onDraw(canvas); 
 canvas.drawLine(Util.Div(Math.round(x)), Util.Div(Math.round(y)), 
  Util.Div(Math.round(incrementX)), Util.Div(Math.round(incrementY)), p);// 斜线 
 } 
}

3.调用

uniformLine = new UniformLine(mContext, 300, 500, 600, 200); 
addView(uniformLine);

感谢各位的阅读!关于“Android怎么使用自定义view在指定时间内匀速画一条直线”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


标题名称:Android怎么使用自定义view在指定时间内匀速画一条直线-创新互联
文章位置:http://wjwzjz.com/article/dcepii.html
在线咨询
服务热线
服务热线:028-86922220
TOP