当前位置: 首页>>代码示例>>Java>>正文


Java PathMeasure类代码示例

本文整理汇总了Java中android.graphics.PathMeasure的典型用法代码示例。如果您正苦于以下问题:Java PathMeasure类的具体用法?Java PathMeasure怎么用?Java PathMeasure使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


PathMeasure类属于android.graphics包,在下文中一共展示了PathMeasure类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: PathInterpolatorGingerbread

import android.graphics.PathMeasure; //导入依赖的package包/类
public PathInterpolatorGingerbread(Path path) {
    final PathMeasure pathMeasure = new PathMeasure(path, false /* forceClosed */);

    final float pathLength = pathMeasure.getLength();
    final int numPoints = (int) (pathLength / PRECISION) + 1;

    mX = new float[numPoints];
    mY = new float[numPoints];

    final float[] position = new float[2];
    for (int i = 0; i < numPoints; ++i) {
        final float distance = (i * pathLength) / (numPoints - 1);
        pathMeasure.getPosTan(distance, position, null /* tangent */);

        mX[i] = position[0];
        mY[i] = position[1];
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:PathInterpolatorGingerbread.java

示例2: onDraw

import android.graphics.PathMeasure; //导入依赖的package包/类
@Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.translate(x, y);

        for (int i = 0; i < pathMeasures.size(); i++) {
            Path path1 = new Path();
            PathMeasure pathMeasure = pathMeasures.get(i);
            MyPath path = paths.get(i);
            if (!isReverse) {
                pathMeasure.getSegment(0, pathMeasure.getLength() * animatorValue, path1, true);
                canvas.drawPath(path1, linePaint);
            } else {
                pathMeasure.getSegment(0, pathMeasure.getLength() * (1 - animatorValue), path1, true);
                canvas.drawPath(path1, linePaint);
            }
            drawCircles(radiusArray.get(i), canvas, path.endPoint, path.endDirection, i);
        }

        drawCenterCircle(canvas);
//        drawCircles(radiusArray.get(0),canvas, paths.get(0).endPoint, paths.get(0).endDirection);
    }
 
开发者ID:yangjingsong,项目名称:AndroidRelationshipView,代码行数:23,代码来源:RelationshipView.java

示例3: FreshDownloadView

import android.graphics.PathMeasure; //导入依赖的package包/类
public FreshDownloadView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    circular_edge = getResources().getDimension(R.dimen.edge);

    bounds = new Rect();
    mTempBounds = new RectF();
    publicPaint = new Paint();
    path1 = new Path();
    path2 = new Path();
    path3 = new Path();
    pathMeasure1 = new PathMeasure();
    pathMeasure2 = new PathMeasure();
    pathMeasure3 = new PathMeasure();
    textBounds = new Rect();

    parseAttrs(context.obtainStyledAttributes(attrs, R.styleable.FreshDownloadView));
    initPaint();
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:FreshDownloadView.java

示例4: initData

import android.graphics.PathMeasure; //导入依赖的package包/类
private void initData() {

        defaultPadding = 2 * radius + dp2px(2);
        defaultPaddingBottom = 2 * radius + dp2px(15);
        defaultWidth = (int) (2 * defaultPadding + dp2px(200));
        defaultHeight = (int) (defaultPadding + defaultPaddingBottom + dp2px(80));

        paint = new Paint[ballCount];
        for (int i = 0; i < paint.length; i++) {
            paint[i] = new Paint(Paint.ANTI_ALIAS_FLAG);
            paint[i].setColor(ballColor);
            paint[i].setStyle(Paint.Style.FILL);
        }

        path = new Path();
        pathMeasure = new PathMeasure();
        randomBallColors = new int[ballCount];
        randomRadius = new float[ballCount];
        randomTransRatioX = new float[ballCount];
        randomTransRatioY = new float[ballCount];

        translateFraction = new float[ballCount];
        translateAnim = new ValueAnimator[ballCount];

    }
 
开发者ID:NicoLiutong,项目名称:miaosou,代码行数:26,代码来源:BounceBallView.java

示例5: initRoomTempPath

import android.graphics.PathMeasure; //导入依赖的package包/类
private void initRoomTempPath(float[] data) {
    mRoomTempPath.reset();
    // Path path = new Path();
    float pointX;
    float pointY;
    // 横向
    mRoomTempPath.moveTo(Xpoint + xFirstPointOffset,
            getDataY(data[0], Ylabel));
    mRoomTempPath.moveTo(Xpoint + xFirstPointOffset,
            getDataY(data[0], Ylabel));
    for (int i = 0; i < Xlabel.length; i++) {
        float startX = Xpoint + i * Xscale + xFirstPointOffset;
        // 绘制数据连线
        if (i != 0) {
            pointX = Xpoint + (i - 1) * Xscale + xFirstPointOffset;
            pointY = getDataY(data[i - 1], Ylabel);
            mRoomTempPath.lineTo(pointX, pointY);
        }
        if (i == Xlabel.length - 1) {
            pointX = startX;
            pointY = getDataY(data[i], Ylabel);
            mRoomTempPath.lineTo(pointX, pointY);
        }
    }
    mRoomTempPathMeasure = new PathMeasure(mRoomTempPath, false);
}
 
开发者ID:Horrarndoo,项目名称:YiZhi,代码行数:27,代码来源:HistoryChartView.java

示例6: initTargetTempPath

import android.graphics.PathMeasure; //导入依赖的package包/类
/**
 * 获取target temp绘线Path数据
 *
 * @param data target temp绘线Path数据
 */
private void initTargetTempPath(float[] data) {
    mTargetTempPath.reset();
    float pointX;
    float pointY;
    // 横向
    mTargetTempPath.moveTo(Xpoint + xFirstPointOffset,
            getDataY(data[0], Ylabel));
    for (int i = 0; i < Xlabel.length; i++) {
        float startX = Xpoint + i * Xscale + xFirstPointOffset;
        // 绘制数据连线
        if (i != 0) {
            pointX = Xpoint + (i - 1) * Xscale + xFirstPointOffset;
            pointY = getDataY(data[i - 1], Ylabel);
            mTargetTempPath.lineTo(pointX, pointY);
        }
        if (i == Xlabel.length - 1) {
            pointX = startX;
            pointY = getDataY(data[i], Ylabel);
            mTargetTempPath.lineTo(pointX, pointY);
        }
    }
    mTargetTempPathMeasure = new PathMeasure(mTargetTempPath, false);
}
 
开发者ID:Horrarndoo,项目名称:YiZhi,代码行数:29,代码来源:HistoryChartView.java

示例7: matchVertsToPath

import android.graphics.PathMeasure; //导入依赖的package包/类
public void matchVertsToPath(Path path, float bottomCoord, float extraOffset) {
    PathMeasure pm = new PathMeasure(path, false);

    for (int i = 0; i < staticVerts.length / 2; i++) {

        float yIndexValue = staticVerts[i * 2 + 1];
        float xIndexValue = staticVerts[i * 2];


        float percentOffsetX = (0.000001f + xIndexValue) / bitmap.getWidth();
        float percentOffsetX2 = (0.000001f + xIndexValue) / (bitmap.getWidth() + extraOffset);
        percentOffsetX2 += pathOffsetPercent;
        pm.getPosTan(pm.getLength() * (1f - percentOffsetX), coords, null);
        pm.getPosTan(pm.getLength() * (1f - percentOffsetX2), coords2, null);

        if (yIndexValue == 0) {
            setXY(drawingVerts, i, coords[0], coords2[1]);
        } else {
            float desiredYCoord = bottomCoord;
            setXY(drawingVerts, i, coords[0], desiredYCoord);

        }
    }
}
 
开发者ID:MSay2,项目名称:Mire,代码行数:25,代码来源:PathBitmapMesh.java

示例8: matchVertsToPath

import android.graphics.PathMeasure; //导入依赖的package包/类
public void matchVertsToPath(Path path, float extraOffset) {
    PathMeasure pm = new PathMeasure(path, false);
    int index = 0;
    for (int i = 0; i < staticVerts.length / 2; i++) {

        float yIndexValue = staticVerts[i * 2 + 1];
        float xIndexValue = staticVerts[i * 2];


        float percentOffsetX = (0.000001f + xIndexValue) / bitmap.getWidth();
        float percentOffsetX2 = (0.000001f + xIndexValue) / (bitmap.getWidth() + extraOffset);
        percentOffsetX2 += pathOffsetPercent;
        pm.getPosTan(pm.getLength() * (1f - percentOffsetX), coords, null);
        pm.getPosTan(pm.getLength() * (1f - percentOffsetX2), coords2, null);

        if (yIndexValue == 0) {
            setXY(drawingVerts, i, coords[0], coords2[1] + verticalOffset);
        } else {
            float desiredYCoord = Math.max(coords2[1], coords2[1] + easedFoamCoords[Math.min(easedFoamCoords.length - 1, index)]);
            setXY(drawingVerts, i, coords[0], desiredYCoord + verticalOffset);

            index += 1;

        }
    }
}
 
开发者ID:florent37,项目名称:Depth,代码行数:27,代码来源:Foam.java

示例9: getValue

import android.graphics.PathMeasure; //导入依赖的package包/类
@Override public PointF getValue(Keyframe<PointF> keyframe, float keyframeProgress) {
  PathKeyframe pathKeyframe = (PathKeyframe) keyframe;
  Path path = pathKeyframe.getPath();
  if (path == null) {
    return keyframe.startValue;
  }

  if (pathMeasureKeyframe != pathKeyframe) {
    pathMeasure = new PathMeasure(path, false);
    pathMeasureKeyframe = pathKeyframe;
  }

  pathMeasure.getPosTan(keyframeProgress * pathMeasure.getLength(), pos, null);
  point.set(pos[0], pos[1]);
  return point;
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:17,代码来源:PathKeyframeAnimation.java

示例10: SunnyType

import android.graphics.PathMeasure; //导入依赖的package包/类
public SunnyType(Context context, ShortWeatherInfo info) {
    super(context);
    mPathFront = new Path();
    mPathRear = new Path();
    sunPath = new Path();
    mPaint = new Paint();
    pos = new float[2];
    tan = new float[2];
    mMatrix = new Matrix();
    measure = new PathMeasure();
    sunMeasure = new PathMeasure();
    currentSunPosition = TimeUtils.getTimeDiffPercent(info.getSunrise(), info.getSunset());
    currentMoonPosition = TimeUtils.getTimeDiffPercent(info.getMoonrise(), info.getMoonset());
    if (currentSunPosition >= 0 && currentSunPosition <= 1) {
        setColor(colorDay);
        boat = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.ic_boat_day);
    } else {
        setColor(colorNight);
        boat = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.ic_boat_night);
    }

    cloud = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.ic_cloud);

}
 
开发者ID:li-yu,项目名称:FakeWeather,代码行数:25,代码来源:SunnyType.java

示例11: RainType

import android.graphics.PathMeasure; //导入依赖的package包/类
public RainType(Context context, @RainLevel int rainLevel, @WindLevel int windLevel) {
    super(context);
    setColor(0xFF6188DA);
    this.rainLevel = rainLevel;
    this.windLevel = windLevel;
    mPaint = new Paint();
    mPaint.setAntiAlias(true);
    mPaint.setColor(Color.WHITE);
    mPaint.setStrokeWidth(5);
    mPaint.setStyle(Paint.Style.STROKE);
    mRains = new ArrayList<>();
    mSnows = new ArrayList<>();
    matrix = new Matrix();
    bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_rain_ground);
    mDstFlash1 = new Path();
    flashPathMeasure1 = new PathMeasure();

    mDstFlash2 = new Path();
    flashPathMeasure2 = new PathMeasure();

    mDstFlash3 = new Path();
    flashPathMeasure3 = new PathMeasure();
}
 
开发者ID:li-yu,项目名称:FakeWeather,代码行数:24,代码来源:RainType.java

示例12: setPos

import android.graphics.PathMeasure; //导入依赖的package包/类
/**
 * 用来给每一个button设置一个中心点
 *
 * @param orbit 一个特定角度的path
 */
private void setPos(Path orbit) {
    PathMeasure measure = new PathMeasure(orbit, false);
    TextLableView tv;
    for (int i = 0; i < mButtons.size(); i++) {
        PopupButton pp = mButtons.get(i);
        tv = kvs.get(pp);
        float[] coords = new float[]{0f, 0f};
        int length = (int) ((i) * measure.getLength() / mButtons.size());
        measure.getPosTan(length, coords, null);
        int px = (int) coords[0] - pp.getMeasuredWidth() / 2;
        int py = (int) coords[1] - pp.getMeasuredHeight() / 2;
        int tvx = (int) coords[0] - tv.getMeasuredWidth() / 2;
        tv.x = tvx;
        tv.y = py - 60;
        pp.x = px;
        pp.y = py;
    }
}
 
开发者ID:panshen,项目名称:PopupCircleMenu,代码行数:24,代码来源:PopupLayer.java

示例13: PathInterpolatorDonut

import android.graphics.PathMeasure; //导入依赖的package包/类
public PathInterpolatorDonut(Path path) {
    final PathMeasure pathMeasure = new PathMeasure(path, false /* forceClosed */);

    final float pathLength = pathMeasure.getLength();
    final int numPoints = (int) (pathLength / PRECISION) + 1;

    mX = new float[numPoints];
    mY = new float[numPoints];

    final float[] position = new float[2];
    for (int i = 0; i < numPoints; ++i) {
        final float distance = (i * pathLength) / (numPoints - 1);
        pathMeasure.getPosTan(distance, position, null /* tangent */);

        mX[i] = position[0];
        mY[i] = position[1];
    }
}
 
开发者ID:liuwei1993,项目名称:AndroidAnimationTools,代码行数:19,代码来源:PathInterpolatorDonut.java

示例14: init

import android.graphics.PathMeasure; //导入依赖的package包/类
private void init() {
    borderPaint = new Paint();
    borderPaint.setColor(borderColor);
    borderPaint.setStyle(Paint.Style.STROKE);
    borderPaint.setStrokeWidth(borderWidth);
    rectPaint = new Paint();
    rectPaint.setColor(rectColor);
    rectPaint.setStyle(Paint.Style.FILL);
    linePaint = new Paint();
    linePaint.setAntiAlias(true);
    linePaint.setColor(lineColor);
    linePaint.setStyle(Paint.Style.STROKE);
    linePaint.setStrokeWidth(lineWidth);
    linePaint.setStrokeJoin(Paint.Join.ROUND);
    textPaint = new TextPaint();
    textPaint.setAntiAlias(true);
    textPaint.setColor(textColor);
    textPaint.setTextSize(textSize);
    fm = textPaint.getFontMetrics();
    path = new Path();
    pathDst = new Path();
    pm = new PathMeasure();
    selectedIndex = -1;
}
 
开发者ID:huzenan,项目名称:EasyChart,代码行数:25,代码来源:EasyGraphHistogram.java

示例15: init

import android.graphics.PathMeasure; //导入依赖的package包/类
private void init(int selectedBgColor, float pointStrokeWidth, int pathColor, float pathWidth) {
    pointPaint = new Paint();
    pointPaint.setAntiAlias(true);
    pointPaint.setColor(pointColor);
    pointPaint.setStrokeWidth(pointStrokeWidth);
    pointPaint.setStyle(Paint.Style.STROKE);
    pathPaint = new Paint();
    pathPaint.setAntiAlias(true);
    pathPaint.setColor(pathColor);
    pathPaint.setStrokeWidth(pathWidth);
    pathPaint.setStyle(Paint.Style.STROKE);
    selectedBgPaint = new Paint();
    selectedBgPaint.setAntiAlias(true);
    selectedBgPaint.setColor(selectedBgColor);
    selectedBgPaint.setStrokeWidth(0);
    selectedBgPaint.setStyle(Paint.Style.FILL);
    selectedBgPaint.setAlpha(100);
    path = new Path();
    pathDst = new Path();
    pm = new PathMeasure();
    rectOval = new RectF();
    selectedIndex = -1;
}
 
开发者ID:huzenan,项目名称:EasyChart,代码行数:24,代码来源:EasyGraphLine.java


注:本文中的android.graphics.PathMeasure类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。