J'ai une question massive pour demander que je suis vraiment coincé sur ce sujet et il serait créer d'obtenir des annonces sur mon application gratuite, ok d'abord je suis ce livreAndroid AdMob sans XML
À partir des jeux Android 2011
http://www.apress.com/9781430230427
maintenant, ce livre met en œuvre un cadre de jeu très agréable et simple que j'utiliser (une version plus simple peut être trouvée ici
http://www.kilobolt.com/day-5-the-android-game-framework-part-i.html
maintenant, ce cadre n'utilise pas typ e de fichier XML quoi que ce soit, il utilise un framebuffer pour dessiner des choses sur l'écran. maintenant lorsque l'application est d'abord commencé, c'est la première méthode appelée qui est dans le AndroidGame.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
boolean isPortrait = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
int frameBufferWidth = isPortrait ? 480: 800;
int frameBufferHeight = isPortrait ? 800: 480;
Bitmap frameBuffer = Bitmap.createBitmap(frameBufferWidth,
frameBufferHeight, Config.RGB_565);
float scaleX = (float) frameBufferWidth
/getWindowManager().getDefaultDisplay().getWidth();
float scaleY = (float) frameBufferHeight
/getWindowManager().getDefaultDisplay().getHeight();
renderView = new AndroidFastRenderView(this, frameBuffer);
graphics = new AndroidGraphics(getAssets(), frameBuffer);
fileIO = new AndroidFileIO(this);
audio = new AndroidAudio(this);
input = new AndroidInput(this, renderView, scaleX, scaleY);
screen = getInitScreen();
setContentView(renderView);
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "MyGame");
}
Où ici que je pourrais essayer de mettre en œuvre la bannière AdMob? Aussi c'est ce qu'une classe d'écran ressemble
public LogoScreen(Game game)
{
super(game);
}
@Override
public void update(float deltaTime)
{
Graphics g = game.getGraphics();
List<TouchEvent> touchEvents = game.getInput().getTouchEvents();
int len = touchEvents.size();
for(int i = 0; i < len; i ++)
{
try
{
TouchEvent event = (TouchEvent) touchEvents.get(i);
if(event.type == TouchEvent.TOUCH_DOWN)
{
game.setScreen(new MainMenuScreen(game));
}
}
catch(IndexOutOfBoundsException io)
{
}
}
}
@Override
public void paint(float deltaTime)
{
Graphics g = game.getGraphics();
g.drawImage(Assets.logoScreen, 0, 0);
}
@Override
public void pause() {
// TODO Auto-generated method stub
}
@Override
public void resume() {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void backButton()
{
android.os.Process.killProcess(android.os.Process.myPid());
}
Si je voulais afficher une annonce AdMob dans le Logoscreen ce que je pourrais faire cela fonctionnerait? Je suis vraiment confus sur la façon dont je peux mettre en œuvre AdMob dans ma demande, si quelqu'un peut briller un peu de lumière à ce sujet ou me aider, ce serait génial :)
Merci
Toile
--- mise à jour --- Voici le code pour le FastRenderView
package com.CC.framework.implementation;
//Imports
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class AndroidFastRenderView extends SurfaceView implements Runnable
{
//Variables
AndroidGame game;
Bitmap framebuffer;
Thread renderThread = null;
SurfaceHolder holder;
volatile boolean running = false;
public AndroidFastRenderView(AndroidGame game, Bitmap framebuffer)
{
super(game);
this.game = game;
this.framebuffer = framebuffer;
this.holder = getHolder();
}
public void resume()
{
running = true;
renderThread = new Thread(this);
renderThread.start();
}
public void run()
{
Rect dstRect = new Rect();
long startTime = System.nanoTime();
while(running)
{
if(!holder.getSurface().isValid())
{
continue;
}
float deltaTime = (System.nanoTime() - startTime)/10000000.000f;
startTime = System.nanoTime();
if (deltaTime > 3.15)
{
deltaTime = (float) 3.15;
}
game.getCurrentScreen().update(deltaTime);
game.getCurrentScreen().paint(deltaTime);
Canvas canvas = holder.lockCanvas();
canvas.getClipBounds(dstRect);
canvas.drawBitmap(framebuffer, null, dstRect, null);
holder.unlockCanvasAndPost(canvas);
}
}
public void pause()
{
running = false;
while(true)
{
try
{
renderThread.join();
break;
}
catch (InterruptedException e)
{
// retry
}
}
}
}
je suppose qu'il s'agit de 'AndroidFastRenderView' puisque c'est ce qui est passé à' setContentView' – DevZer0
J'ai mis à jour mon poste avec le code FastRenderView – Canvas
FastRenderView est l'extension de 'SurfaceView' voici un lien http: // stackoverflow .com/questions/10505185/how-to-show-admob-in-surfaceview – DevZer0