我正在为我的游戏设置多个视图,所以我创建了一个视图组,目前只有一个,当我运行程序时,我得到一个空白屏幕,这是我的游戏视图类(ViewGroup)的代码:
import android.content.Context;
import android.view.ViewGroup;
import java.io.FileNotFoundException;
public class GameView extends ViewGroup {
private MainActivity activity;
public GameView(Context context,MainActivity activity) throws FileNotFoundException
{
super(context);
this.activity = activity;
Graphics v = new Graphics(this,activity,context);
addView(v);
}
@Override
protected void onLayout(boolean b, int i, int i2, int i3, int i4) {
}
}
这是我的图形类的代码(View):
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
/**
* Created by Anonymous on 4/29/14.
*/
public class Graphics extends View implements Runnable,Button.OnTouchListener {
private Thread thread;
private boolean running = false;
private Player p;
private MainActivity activity;
private Button b;
GameView view;
public Graphics(GameView view,MainActivity activity,Context context){
super(context);
this.view = view;
this.activity = activity;
p = new Player(400,600,activity);
}
public synchronized void start()
{
if(running)
return;
running = true;
thread = new Thread(this);
thread.start();
}
public synchronized void stop()
{
if(!running)
return;
running = false;
System.exit(0);
}
@Override
public void run()
{
Bitmap b = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
while(running)
{
onDraw(c);
tick();
}
}
public void tick()
{
p.tick(this);
}
@Override
protected void onDraw(Canvas canvas)
{
try
{
p.render(canvas);
}catch (IOException e)
{
}
}
public boolean onTouch(View view,MotionEvent e){
int action = e.getAction();
switch(action)
{
case MotionEvent.ACTION_DOWN:
p.setY(p.getY()+1);
break;
}
return false;
}
}
答案 0 :(得分:0)
尝试在您的Activity中添加addView。
如果您需要多次追加视图,只需多次调用addView即可。请注意,ViewGroup是一个抽象类,因此您可以更快地使用LinearLayout来添加视图。 LinearLayout本身就是一个ViewGroup。
尝试我的建议,如果你遇到某个地方,请在这里发布你新活动的代码(请不要发布你的旧活动),并告诉我们为什么你认为你被卡住了。
对于其他阅读此内容的人,如果您需要更多上下文,请参阅此original question,其他人要求他分成两部分。