大佬教程收集整理的这篇文章主要介绍了android – 在画布上绘制时自定义路径线条样式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试做的是用两条边用黑色笔划线的透明线条突出显示路线
到目前为止,玩不同的填充样式和Paint设置并没有让我找到任何解决方案.
有谁知道我需要找什么方向?
目前我设法只绘制实线,但这不是我想要的:
油漆设置:
mPaint.setStyle(Paint.Style.stroke); mPaint.setColor(COLOR_DEFAULT); mPaint.setPathEffect(new CornerPathEffect(10)); mPaint.setstrokeWidth(6); mPaint.setAntiAlias(true);
绘图程序
canvas.drawPath(mPath,mPaint);
这是通过修改从SDK获取的ApiDemos中的PathEffects示例得出的:
package com.example.android.apis.graphics; import android.content.Context; import android.graphics.*; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; public class PathEffects extends GraphicsActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new SampleView(this)); } private static class SampleView extends View { private Paint mPaint; private Path mPath; private PathEffect[] mEffects; private int[] mColors; private float mPhase = 3; private static void makeEffects(PathEffect[] e,float phase) { e[0] = null; // no effect e[1] = new CornerPathEffect(10); e[2] = new DashPathEffect(new float[] {10,5,5},phase); e[3] = new PathDashPathEffect(makePathDash(),12,phase,PathDashPathEffect.Style.MORPH); e[4] = new ComposePathEffect(e[2],e[1]); e[5] = new ComposePathEffect(e[3],e[1]); } public SampleView(Context context) { super(context); setFocusable(true); setFocusableInTouchMode(true); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setStyle(Paint.Style.stroke); mPaint.setstrokeWidth(6); mPath = makeFollowPath(); mEffects = new PathEffect[6]; mColors = new int[] { Color.BLACK,Color.RED,Color.BLUE,Color.GREEN,Color.MAGENTA,Color.BLACK }; } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.WHITE); RectF bounds = new RectF(); mPath.computeBounds(bounds,false); canvas.translate(10 - bounds.left,10 - bounds.top); makeEffects(mEffects,mPhase); invalidate(); for (int i = 0; i < mEffects.length; i++) { mPaint.setPathEffect(mEffects[i]); mPaint.setColor(mColors[i]); canvas.drawPath(mPath,mPaint); canvas.translate(0,28); } } @Override public boolean onKeyDown(int keyCode,KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: mPath = makeFollowPath(); return true; } return super.onKeyDown(keyCode,event); } private static Path makeFollowPath() { Path p = new Path(); p.moveTo(0,0); for (int i = 1; i <= 15; i++) { p.lineTo(i*20,(float)Math.random() * 35); } return p; } private static Path makePathDash() { Path p = new Path(); p.moveTo(-6,4); p.lineTo(6,3); p.lineTo(-6,3); p.close(); p.moveTo(-6,-4); p.lineTo(6,-3); p.lineTo(-6,-3); return p; } } }
以上是大佬教程为你收集整理的android – 在画布上绘制时自定义路径线条样式全部内容,希望文章能够帮你解决android – 在画布上绘制时自定义路径线条样式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。