Android 如何使用相对的RectF参数沿椭圆路径绘制文本
我想沿着椭圆路径绘制文本。下面是代码片段。据观察,使用RectF参数0.1f、0.1f、0.9f、0.9f,文本未被绘制。请提供反馈Android 如何使用相对的RectF参数沿椭圆路径绘制文本,android,Android,我想沿着椭圆路径绘制文本。下面是代码片段。据观察,使用RectF参数0.1f、0.1f、0.9f、0.9f,文本未被绘制。请提供反馈 protected void onDraw(Canvas canvas) { super.onDraw(canvas); float scale = (float) getWidth(); canvas.save(Canvas.MATRIX_SAVE_FLAG); canvas.scale(scale, scale)
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
float scale = (float) getWidth();
canvas.save(Canvas.MATRIX_SAVE_FLAG);
canvas.scale(scale, scale);
canvas.drawColor(Color.WHITE);
Paint ovalpaint = new Paint();
ovalpaint.setFlags(Paint.ANTI_ALIAS_FLAG);
ovalpaint.setColor(Color.CYAN);
RectF oval = new RectF(0.1f,0.1f,0.9f,0.9f);
canvas.drawOval(oval, ovalpaint);
Path rim= new Path();
rim.addOval(oval,Direction.CW);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(30);
paint.setAntiAlias(true);
canvas.drawTextOnPath("Hi I am visible", rim, 0, 30, paint);
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int chosenWidth = chooseDimension(widthMode, widthSize);
int chosenHeight = chooseDimension(heightMode, heightSize);
int chosenDimension = Math.min(chosenWidth, chosenHeight);
setMeasuredDimension(chosenDimension, chosenDimension);
}
私有整数选择维度(整数模式,整数大小){
}
if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.EXACTLY) {
System.out.println("in if");
return size;
} else { // (mode == MeasureSpec.UNSPECIFIED)
System.out.println("in eles");
return 300;
}
}