Добавление ребенка в GestureOverlayView в момент, когда я коснулся андроида?

Как я могу добавить ребенка (макет) в gestureoverlayview в тот момент, когда я коснулся этой точки зрения..... Возможно ли разместить его в соответствии с координатами местоположения?

Ответ 1

Для API 11 (Android 3.0.x) и выше: вы можете использовать View.setX() и View.setY(). Подробнее см. API docs.

Для всех версий API: вы можете использовать RelativeLayout и RelativeLayout.Layout. В частности, установив поля в полях, унаследованных от ViewGroup.MarginLayoutParams. Я предполагаю, что это будет выглядеть примерно так:

RelativeLayout parentLayout = (RelativeLayout) findViewById(R.id.relative_layout);

LinearLayout newLayout = new LinearLayout(this); // or some other layout

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    // You can enter layout absolute dimensions here instead of 'wrap_content'.
    ViewGroup.LayoutParams.WRAP_CONTENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
// Set your X and Y position here for new layout.
layoutParams.setMargins(100 /*left*/, 200 /*top*/, 0 /*right*/, 0 /*bottom*/); 
parentLayout.addView(newLayout , layoutParams);

Ответ 2

public boolean onTouchEvent(MotionEvent event) {
    TextView tv=new TextView(this);

    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    case MotionEvent.ACTION_MOVE:
    case MotionEvent.ACTION_UP:
        x = event.getX();
        y = event.getY();
        RelativeLayout gh = (RelativeLayout) findViewById(R.id.relative1);
        RelativeLayout.LayoutParams para = new RelativeLayout.LayoutParams(150, 50); //Size of textView
        para.leftMargin = (int) x;  //location of textview
        para.topMargin = (int) y;
        tv.setLayoutParams(para);

        tv.setText("You have Touched at  "+x+" ,"+y);
        change();
        gh.addView(tv);
    }