добавление другого контента сверху и снизу MySurfaceView - PullRequest
0 голосов
/ 07 марта 2012

Я разрабатываю приложение для Android, которое содержит MySurfaceView и Canvas для рисования изображений в потоке, проходящем через приложение,

(макет по умолчанию main.xml, который создается с проектом)

, ноЯ должен добавить панель / textView в верхней части и добавить объявление в нижней части экрана.тогда как я могу это сделать?

моя декларация выглядит так:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mySurfaceView = new MySurfaceView(this);
    setContentView(mySurfaceView);              
}

Может быть, моей информации недостаточно для понимания ситуации, поэтому, если вы обнаружите какую-то неясность в моем вопросепожалуйста, спросите меня

Заранее спасибо

1 Ответ

2 голосов
/ 09 марта 2012

Хм, одна возможность состоит в том, что вы могли бы просто поместить его в RelativeLayout или что-то подобное?Это предполагает, что вы не хотите просто определять его в XML, который, вероятно, будет выглядеть чище.Код, вероятно, будет выглядеть примерно так (вы определенно можете сделать его более эффективным / просто используйте LinearLayout, я просто бросил первое, что пришло мне в голову):

  RelativeLayout layout = new RelativeLayout(this);
  RelativeLayout.LayoutParams paramsTop =
          new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,
                                          RelativeLayout.LayoutParams.WRAP_CONTENT);
  // Add the textView to the top
  paramsTop.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);

  TextView textView = new TextView(this);
  textView.setText("Hello World");
  // Give them id's since we need to position relative to one another
  textView.setId(1);
  layout.addView(textView, paramsTop);


  AdView adView = new AdView(this, AdSize.BANNER, INSERT_ADMOB_ID_HERE);
  adView.setId(2);
  RelativeLayout.LayoutParams paramsBottom =
      new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                      RelativeLayout.LayoutParams.WRAP_CONTENT);
  // Add the adView to the bottom
  paramsBottom.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);

  layout.addView(adView, paramsBottom);
  AdRequest adRequest = new AdRequest();
  adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
  adView.loadAd(adRequest);


  SurfaceView view = new SurfaceView( this );
  view.setId(3);
  RelativeLayout.LayoutParams paramsMiddle =
          new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,
                                          RelativeLayout.LayoutParams.WRAP_CONTENT);

  // Add the surfaceView in between the textView and the adView
  paramsMiddle.addRule(RelativeLayout.BELOW, textView.getId());
  paramsMiddle.addRule(RelativeLayout.ABOVE, adView.getId());
  layout.addView(view, paramsMiddle);

  setContentView(layout);
...