Draw text along path
To draw text along path, we can call Canvas.drawTextOnPath(text, path, hOffset, vOffset, paint).
Example:
Create a new class MyView extends View. Override the onDraw(Canvas canvas) method calling Canvas.drawTextOnPath() to draw text along path.
Example:
Create a new class MyView extends View. Override the onDraw(Canvas canvas) method calling Canvas.drawTextOnPath() to draw text along path.
import
android.content.Context;
import
android.graphics.Canvas;
import
android.graphics.Color;
import
android.graphics.Paint;
import
android.graphics.Path;
import
android.util.AttributeSet;
import
android.view.View;
public
class
MyView
extends
View {
public
MyView(Context context) {
super
(context);
}
public
MyView(Context context, AttributeSet attrs) {
super
(context, attrs);
}
public
MyView(Context context, AttributeSet attrs,
int
defStyle) {
super
(context, attrs, defStyle);
}
@Override
protected
void
onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super
.onDraw(canvas);
Paint paint =
new
Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.WHITE);
paint.setStrokeWidth(
3
);
Path path =
new
Path();
path.moveTo(
50
,
50
);
path.cubicTo(
500
,
100
,
100
,
500
,
1000
,
500
);
canvas.drawPath(path, paint);
canvas.drawPath(path, paint);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setTextSize(
100
);
//drawTextOnPath(text, path, hOffset, vOffset, paint)
paint.setColor(Color.GRAY);
canvas.drawTextOnPath(
"--- Android.Coding ---"
, path,
110
,
5
, paint);
paint.setColor(Color.GREEN);
canvas.drawTextOnPath(
"--- Android.Coding ---"
, path,
100
,
0
, paint);
}
}
Modify main Java activity to setContentView() using our custom View, MyView.
package
com.AndroidMyCanvas;
import
android.app.Activity;
import
android.os.Bundle;
public
class
AndroidMyCanvasActivity
extends
Activity {
/** Called when the activity is first created. */
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(
new
MyView(
this
));
}
}
No comments:
Post a Comment