私はAndroidの初心者です.私のアプリでは、ユーザーが入力できる指のタッチでテキストビュー/編集ビューを描画する必要がありました.たくさん検索しましたが、関連するものは何も見つかりません.
editview/text を描画するためのリンクを見つけましたが、フィンガータッチではありませんでした。
私はAndroidの初心者です.私のアプリでは、ユーザーが入力できる指のタッチでテキストビュー/編集ビューを描画する必要がありました.たくさん検索しましたが、関連するものは何も見つかりません.
editview/text を描画するためのリンクを見つけましたが、フィンガータッチではありませんでした。
これは、ビューにタッチ イベントを登録することで実現できます。タッチ イベントが発生すると、タッチ イベントの座標に基づいて EditText/TextView を作成できます。
class YourMainClass extends Activity{
public void onCreate(Bundle bundle)
{
//Do your normal UI initialization here
your_layout.setOnTouchListener(new TouchListener()); //where your_layout is the layout/view of your Activity that should register the touch events.
}
class TouchListener implements OnTouchListener
{
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT); //See note below
params.leftMargin = (int)event.getX() - v.getLeft();
params.topMargin = (int)event.getY() - v.getTop();
EditText edit = new EditText(this);
edit.setLayoutParams(params);
your_layout.addView(edit);
return true;
}
}
}
}
注: LayoutParams タイプを使用するレイアウトのタイプに必ず変更してください (たとえば、LinearLayout を使用して EditText を配置する場合は LinearLayout.LayoutParams)。
また、パディングを使用する場合、実際の EditText の座標がずれている可能性があります (v.getLeft()
およびを使用する場合はパディング領域がビューとしてカウントされv.getTop()
ますが、レイアウトに EditText を追加する場合はカウントされないため)。