使用XML布局在Game SurfaceView上添加按钮

时间:2014-02-27 15:21:14

标签: android xml android-layout surfaceview android-button

我有玩游戏的游戏界面。现在我需要在我的图像上使用一些按钮。但我需要使用XML布局文件在游戏视图中添加按钮。我使用了XML布局,但我得到了

Error Inflating class com.name.company.surfaceview.GameView

代码:

public class MainActivity extends Activity {
    GameView GameView;
    Button btnStart;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //for no title
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //setContentView(new GameView(this));

        setContentView(R.layout.activity_main);
        GameView = (GameView)findViewById(R.id.gameView);
         btnStart = (Button)findViewById(R.id.btnStart);

    }

XML布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >



    <view class="com.name.company.surfaceview$GameView"
        android:id="@+id/gameView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

    <LinearLayout android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom">

        <Button
             android:id="@+id/btnStart"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="button" />


    </LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我认为您的Java代码似乎没有问题。 ,可能是您的XML文件存在问题。将XML文件替换为此文件:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >



<view class="com.name.company.surfaceview$GameView"
    android:id="@+id/gameView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>


    <Button
         android:id="@+id/btnStart"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="button"/>

</LinearLayout>

如果此代码无效,则问题出在class com.name.company.surfaceview$GameView上。再次尝试使用相同的代码,但将button项放在class项上方。我希望它有所帮助