我的三角形也没有显示出来求解答
private Paint mPaint;
private Path mPath;
private int mTriangleWidth;
private int mTriangleHeight;
//初始位置
private int mInitTanslateX;
//移动的位置
private int mTranslateX;
private static final String TAG = "ViewPagerIndicator";
private static float RADIO_TRIANGLE = 1/6F;
public ViewPagerIndicator(Context context) {
this(context,null);
}
public ViewPagerIndicator(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
/**
* Helper for setFlags(), setting or clearing the ANTI_ALIAS_FLAG bit
* AntiAliasing smooths out the edges of what is being drawn,
*/
mPaint.setAntiAlias(true);
//@ parseColor
// * Parse the color string, and return the corresponding color-int.
mPaint.setColor(Color.parseColor("#ffffffff"));
mPaint.setStyle(Paint.Style.FILL);
mPaint.setPathEffect(new CornerPathEffect(3));
}
/**
* 这里绘制三角形
* @param canvas
*/
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.save();
//这个方法什么意思?
canvas.translate(mInitTanslateX+mTranslateX,getWidth());
canvas.drawPath(mPath,mPaint);
canvas.restore();
super.dispatchDraw(canvas);
Log.d(TAG, "dispatchDraw: ");
}
//当当前VIEW的size发生变化的时候就会调用这个方法
// @param w Current width of this view.
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mTriangleWidth = (int) (w/3 *RADIO_TRIANGLE);
mTriangleHeight = mTriangleWidth/2;
mInitTanslateX = w/2/3-mTriangleHeight/2;
initTriangle();
}
private void initTriangle() {
mPath =new Path();
//@param x The x-coordinate of the start of a new contou(新轮廓)
mPath.moveTo(0,0);
mPath.lineTo(mTriangleWidth,0);
mPath.lineTo(mTriangleWidth/2,-mTriangleHeight);
mPath.close();
Log.d(TAG, "initTriangle: ");
}