gpt4 book ai didi

java - 如何在不使用 XML 的情况下在 Android 中的 Canvas 元素上显示广告?

转载 作者:行者123 更新时间:2023-12-01 20:03:24 26 4
gpt4 key购买 nike

我正在开发一款游戏,需要在主 Canvas 上显示广告。

我有一个启动整个应用程序的 MainActivity 类:

protected void onCreate(Bundle sis) {
super.onCreate(sis);
game = new Game(this);
setContentView(game);
}

然后 Game 类包含大部分计算和 Canvas 内容。但是,游戏在与 UI 线程不同的线程上运行,并使用 SurfaceHolder 来启动线程等。

private SurfaceHolder holder;

private Thread drawThread;

public Game(Context context) {
super(context);
init(context);
mainCanvas=new Canvas();

}
public Game(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public Game(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
@TargetApi(21)
public Game(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context);
}

然后它就会启动绘图线程,如下所示:

 boolean drawing = true;
/**
* Creates a new draw thread and starts it.
*/
public void startDrawThread(){
if (surfaceReady && drawThread == null){
drawThread = new Thread(this, "Draw thread");
drawingActive = true;
drawThread.start();
Log.d(LOGTAG, "Started");
}
}
/**
* Stops the drawing thread
*/
public void stopDrawThread(){
if (drawThread == null){
Log.d(LOGTAG, "DrawThread is null");
return;
}
drawingActive = false;
while (true){
try{
Log.d(LOGTAG, "Request last frame");
drawThread.join(5000);
break;
} catch (Exception e) {
Log.e(LOGTAG, "Could not join with draw thread");
}
}
drawThread = null;
}

问题是,如何让广告显示在我的 Canvas 上?我没有使用任何 XML 代码,一切都是以编程方式生成的。

最佳答案

我自己整理了一下。我创建了一个 XML 类,它会启动而不是

super.onCreate(sis);
game = new Game(this);
setContentView(game);

启动代码如下:

 super.onCreate(sis);
game = new Game(this);
setContentView(R.layout.main);

我有非常简单的 XML 文件:

   <com.canvas.game.Game
android:id="@+id/game"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.google.android.gms.ads.AdView
android:id="@+id/bottom_banner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="#00000000"
app:adSize="BANNER"
app:adUnitId="ca-app-pub-3940256099942544/6300978111"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

希望这对某人有所帮助。不管怎样,谢谢!

关于java - 如何在不使用 XML 的情况下在 Android 中的 Canvas 元素上显示广告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59001079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com