ユーザーが画面にいくつかのオブジェクトをペイントするAndroidアプリを構築しています。オブジェクトの1つのタイプは、Textオブジェクトです。ユーザーが指をドラッグしてオブジェクトを作成すると、オブジェクトは移動/再形成可能な長方形として表示されます。ユーザーがテキストオブジェクトをタップすると、ユーザーがテキストを入力する新しいアクティビティを起動し、onActivityResultメソッドで返します。
次に、オブジェクトにテキストを表示します。テキストクラスから長方形などの座標としてのものにアクセスできます。本質的に私がやりたいのは、プログラムでTextView(またはEditText)を作成し、その境界をオブジェクトがペイントされている長方形の境界として設定することです。それを行うのに役立つメソッドはありますか?
(別のアプローチは、テキストオブジェクトでcanvas.drawTextOnPathメソッドを使用することです。ただし、テキストがオブジェクトから外れる可能性があり、複数行も処理する必要があるため、これはより複雑に見えます)
事前にどうもありがとうございました!
編集:GAMAのアプローチを試す
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 1:
if (resultCode == Activity.RESULT_OK) {
String text=data.getStringExtra("text");
System.out.println(text);
TextView tv=new TextView(this);
//LayoutParams lp = new LayoutParams(new ViewGroup.MarginLayoutParams((int)texts.get(index).width,(int)texts.get(index).height));
LayoutParams lp = new LayoutParams(new ViewGroup.MarginLayoutParams(100,100));
//tv.setLayoutParams(lp);
//lp.setMargins((int)texts.get(index).Sx, (int)texts.get(index).Sy, (int)texts.get(index).Lx, (int)texts.get(index).Ly);
tv.setLayoutParams(lp);
tv.setTextSize(10);
tv.setTextColor(Color.RED);
tv.setText(text);
lp.setMargins(0,0,0,0);
//tv.setVisibility(View.VISIBLE);
System.out.println("got "+tv.getText());
}
break;
}
}
どちらのプリントも期待どおりにテキストを表示しますが、画面に何も表示されません(最初に左下に設定しようとしました)