0

私はAndroidの初心者です.私のアプリでは、ユーザーが入力できる指のタッチでテキストビュー/編集ビューを描画する必要がありました.たくさん検索しましたが、関連するものは何も見つかりません.

editview/text を描画するためのリンクを見つけましたが、フィンガータッチではありませんでした。

4

1 に答える 1

1

これは、ビューにタッチ イベントを登録することで実現できます。タッチ イベントが発生すると、タッチ イベントの座標に基づいて 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 を追加する場合はカウントされないため)。

于 2012-09-16T17:02:00.167 に答える