我正在尝试使用带有一些文本的自定义GLSurfaceView,以显示游戏中的分数。我已经在这里发布了一些统一的xml布局,但是当我尝试使用setContentView加载它时,应用程序崩溃了。调试后我发现它说“找不到来源”。我重建了R文件,但这没有帮助。作为参考,扩展GLSurfaceView的类称为GLView。任何帮助将不胜感激。
package org.kizik.WLTBO;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class WholettheballoutActivity extends Activity {
GLView view;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.score);
view = (GLView) findViewById(R.id.mySurfaceView);
// You can use a FrameLayout to hold the surface view
/*FrameLayout frameLayout = new FrameLayout(this);
frameLayout.addView(view);
// Then create a layout to hold everything, for example a RelativeLayout
RelativeLayout relativeLayout= new RelativeLayout(this);
relativeLayout.addView(frameLayout);
relativeLayout.addView(score);
setContentView(relativeLayout);*/
}
@Override
protected void onPause() {
super.onPause();
view.onPause();
}
@Override
protected void onResume() {
super.onResume();
view.onResume();
}
}
使用XML文件名score.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<org.kizik.WLTBO.GLView
android:id="@+id/mySurfaceView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
答案 0 :(得分:3)
如果您使用单个参数GLView(Context c)创建了一个构造函数,可能会发生这种情况,您需要创建另一个像GLView(Context c,AttributeSet attrs)这样的构造函数,所以如果你没有创建那个构造函数,那么就不能没有从类中找到GLView,因为它的构造函数没有被创建.. !!我认为你还没有创建那个构造函数.. !!
public GLview(Context context, AttributeSet attrs){
super(context,attrs); }
答案 1 :(得分:0)
问题出在自定义视图的XML声明中,它应该是这样的:
<org.kizik.WLTBO.GLView [other attributes]/>