为了账号安全,请及时绑定邮箱和手机立即绑定

有人帮我看看我的代码有什么问题吗,三角形没有绘制出来

public class ViewPagerIndicator extends LinearLayout {
    private Paint mPaint;
    private Path mPath;
    private int mTriangleWidth;
    private int mTriangleHeight;
    private static final float RADIO_TRIANGLE_WIDTH = 1 / 6f;
    private int mInitTranslationX;//初始x方向偏移量
    private int mTranslationX;//三角形x方向偏移量



    public ViewPagerIndicator(Context context) {
        this(context,null);
    }

    public ViewPagerIndicator(Context context, AttributeSet attrs) {
        super(context, attrs);
        mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setStyle(Style.FILL);
        mPaint.setPathEffect(new CornerPathEffect(3));
        mPaint.setColor(Color.parseColor("#ffffffff"));
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {
        Log.d("ViewPagerIndicator", "dispatchDraw");
        canvas.save();
        canvas.translate(mInitTranslationX + mTranslationX, getHeight() + 2);
        canvas.drawPath(mPath, mPaint);
        canvas.restore();

        super.dispatchDraw(canvas);
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        Log.d("ViewPagerIndicator", "onSizeChanged");
        super.onSizeChanged(w, h, oldw, oldh);
        mTriangleWidth = (int) (w / 3 * RADIO_TRIANGLE_WIDTH);
        mInitTranslationX = w / 3 / 2 - mTriangleWidth / 2;
        mTriangleHeight = mTriangleWidth / 2;
        initTriangle();

    }

    //初始化三角形
    private void initTriangle() {
        mPath = new Path();
        mPath.moveTo(0, 0);
        mPath.moveTo(mTriangleWidth, 0);
        mPath.moveTo(mTriangleWidth / 2,-mTriangleHeight);
        mPath.close();
    }
}


正在回答

3 回答

看你的initTriangle()函数,

void moveTo(float x, float y)

 Set the begining of the next contour to the point (x,y).

这个只是起始点要用到,

后面画线用void lineTo(float x, float y)函数:

Add a line from the last point to the specified point (x, y).

0 回复 有任何疑惑可以回复我~
#1

botao555 提问者

非常感谢!太大意了,怪不得绘制不出三角形.
2016-04-04 回复 有任何疑惑可以回复我~

我的也是lineto写成了moveto,感谢

0 回复 有任何疑惑可以回复我~

你的画笔在哪里呢?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-自定义ViewPager指示器
  • 参与学习       30028    人
  • 解答问题       75    个

带领大家实现最火爆的跟随型指示器,学完保准压倒一片

进入课程

有人帮我看看我的代码有什么问题吗,三角形没有绘制出来

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信