Адмоб в андроиде.Как заставить это появиться и исчезнуть - PullRequest
1 голос
/ 30 октября 2010

Я новичок в программировании на Android.Я следовал инструкциям и создал баннер admob.Как я могу сделать так, чтобы он появлялся через определенные промежутки времени, и чтобы он исчез, если я хочу?Например, баннер admob может подниматься и опускаться внизу экрана, когда захочет.Спасибо.

Редактировать:

Я знаю, что могу позвонить adView.setVisibility( View.GONE );, чтобы реклама появлялась и исчезала, но когда я пытаюсь записать ее в поток, чтобы она появилась и исчезла сс интервалами, он просто висит там с черным экраном.

Или, в любом случае, admob может заставить их рекламу появляться и исчезать с интервалами?

Вот как я называю поток.

loadAdmob = new asyncAdmobProc();
loadAdmob.execute();
loadAdmob.doInBackground();//asyncAdmobProc();

Код:

//wakes up the admob
private class asyncAdmobProc extends AsyncTask<Integer , Void, Integer> {

    private boolean bconthread=true;
    protected Integer doInBackground(Integer... Params) {
        //wakes up and disable admob

        /*AdManager.setTestDevices( new String[] {
                AdManager.TEST_EMULATOR, // Android emulator
                "E83D20734F72FB3108F104ABC0FFC738", // My T-Mobile G1 Test Phone
                } );//*/

        adView = (AdView)findViewById(R.id.articleList_ads);
        adView.requestFreshAd();
        adView.setVisibility( View.GONE );

        //while(bconthread){
            adView.requestFreshAd();
            ShowAd();

            postDelayed();

            //HideAd();

            postDelayed();

        //}

        //call this to delete all bitmaps associated with the ad
        adView.cleanup();
        return 0;
    }
    private void HideAd()
    {
        // Hide the ad.
        adView.setVisibility( View.GONE );

        // Fade the ad in over 4/10 of a second.
        AlphaAnimation animation = new AlphaAnimation( 0.0f, 1.0f );
        animation.setDuration( 400 );
        animation.setFillAfter( true );
        animation.setInterpolator( new AccelerateInterpolator() );
        adView.startAnimation( animation );//*/

    }
    private void ShowAd()
    {
        // Unhide the ad.
        adView.setVisibility( View.VISIBLE );

        // Fade the ad in over 4/10 of a second.
        AlphaAnimation animation = new AlphaAnimation( 0.0f, 1.0f );
        animation.setDuration( 400 );
        animation.setFillAfter( true );
        animation.setInterpolator( new AccelerateInterpolator() );
        adView.startAnimation( animation );//*/
    }
}

1 Ответ

6 голосов
/ 30 октября 2010
  1. Вам не нужно вызывать AsyncTask.doInBackground, этот метод будет вызываться самим AsyncTask.
  2. AsyncTask.doInBackground вызывается в другом потоке вместо потока пользовательского интерфейса, вы можете не захотеть запускать в нем анимацию, что вызовет некоторые проблемы в пользовательском интерфейсе.
  3. Существует множество способов, с помощью которых вы можете сделать так, чтобы представление появлялось и исчезало с интервалами, думаю, использование AsyncTask не является одним из них.Ниже приведен пример кода, который использует обработчик для архивирования.
    public MyActivity extends Activity {

        private static final int SHOW = 1;
        private static final int HIDE = -1;

        private View adView;

        private Handler handler = new Handler() {
            public void handleMessage(Message msg) {
                adView.setVisibility(msg.what);                
            }
        }

        private void startTriggerThread() {
            new Thread() {
                boolean show = false;
                public void run() {
                    while (true) {
                        if (show) {
                            handler.sendEmptyMessage(View.GONE);
                        } else {
                            handler.sendEmptyMessage(View.VISIBLE);
                        }
                        show = !show;
                        try {
                            Thread.sleep(INTERVALS);
                        }
                        catch (InterruptException e) {
                            // Ignore.
                        }
                    }
                }
            }.start();
        }

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