プログラムで円または半円にテキストを追加したいのですが、線のエッジのある円ではなく、エッジが単語になるようにします。より良い説明については画像を参照してください。
Androidでこれを行うにはどうすればよいですか、またはこの問題を解決するためにどのようなリソースを読むことができますか?
プログラムで円または半円にテキストを追加したいのですが、線のエッジのある円ではなく、エッジが単語になるようにします。より良い説明については画像を参照してください。
Androidでこれを行うにはどうすればよいですか、またはこの問題を解決するためにどのようなリソースを読むことができますか?
これを行うには、テキストをに描画する必要がありますCanvas
。のサブクラスには、カスタムテキストの描画に使用できるView
が渡さCanvas
れます。onDraw()
このメソッドを使用すると、選択した任意のオブジェクトdrawTextOnPath()
にテキストを配置できます。Path
新しいインスタンスを作成し、を使用して、半円のパスを作成できますaddArc()
。
以下のコードを使用できます。あなたのTextviewが欲しいようにそれを作ってください。ここで、背景画像として何かが必要な場合は、使用します setBackgroundResource(R.drawable.YOUR_IMAGE);
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphicsView(this));}
static public class GraphicsView extends View {
private static final String QUOTE = "text in a half-circle";
private Path circle;
private Paint cPaint;
private Paint tPaint;
public GraphicsView(Context context) {
super(context);
int color = Color.argb(127, 255, 0, 255);
circle = new Path();
circle.addCircle(230, 350, 150, Direction.CW);
cPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
cPaint.setStyle(Paint.Style.STROKE);
cPaint.setColor(Color.LTGRAY);
cPaint.setStrokeWidth(3);
// For Background Image
setBackgroundResource(R.drawable.YOUR_IMAGE);
tPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
tPaint.setStyle(Paint.Style.FILL_AND_STROKE);
//TextColor you want to set
tPaint.setColor(Color.BLACK);
//TextSize you want to set
tPaint.setTextSize(50);}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawTextOnPath(QUOTE, circle, 485, 20, tPaint);}
}
}
やってみて。それがあなたを助けることを願っています。