Как нарисовать AdMob на холсте? - PullRequest
4 голосов
/ 02 января 2012

У меня проблема с отображением AdMob на холсте.

Мой код показан ниже.

layout = new LinearLayout(getContext());
    adView = new AdView((Activity) getContext(), AdSize.BANNER, "############");
    layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    adView.setVisibility(View.VISIBLE);
    layout.addView(adView);
    TextView textView = new TextView(context); 
    textView.setVisibility(View.VISIBLE);
    textView.setText("Hello world");
    layout.addView(textView);
    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    adRequest.addTestDevice("TEST_DEVICE_ID");
    adView.loadAd(adRequest);

В моем методе onDraw у меня есть.

 canvas.drawColor(Color.GRAY);  
 layout.measure(getWidth(), getHeight());
 layout.layout(0, 0, getWidth(), getHeight());
            layout.draw(canvas);

Привет мир "появляется, но не объявление.

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Если вы еще не решили эту проблему: избавьтесь от Hello World TextView или объявите его раньше

adView.setVisibility(View.VISIBLE);    
layout.addView(adView);
0 голосов
/ 02 января 2012

Я предполагаю, что "Привет, мир" был для тестирования?

Вы пытались звонить adView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));?

Когда вы вызываете addView для группы просмотра, по умолчанию дочерний объект наследует параметры макета родительского элемента, и, поскольку в вашем случае родительские параметры макета имеют тип wrap_content, то это может приводить к уменьшению размера представления, чтобы оно было невидимым.

Кроме того, вы не должны вызывать layout.measure в своем onDraw, вы, вероятно, должны делать это в методе onMeasure.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...