(请注意,我是Android编程的初学者)
我有一个派生自GLSurfaceView的课程。
我想要的是在它上面放置一些视图(图像,文本)。
我设法通过textView.setPadding(300,0,0,0)
;
问题在于我无法使图像视图正确定位。我试过imageView.layout(), imageView.setPadding()
。
以下是代码:
ImageView imageView=new .... // Create and set drawable
// Setting size works as expected
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(200,200);
imageView.setLayoutParams(lp);
surfaceView = new MySurfaceViewDerivedFromOpenGLSurface(...);
setContentView(surfaceView);
addContentView(textView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
addContentView(textView2, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
addContentView(imageView, lp); // Add the image view
是否可以在不指定XML文件中的内容的情况下以这种方式正确定位?
我在sdk dev网站上看到了一个示例,展示了如何在openGL表面视图上创建视图,但问题是我有一个派生类,我不知道是否可以在XML文件中指定它(我有0%的XML经验,到目前为止Eclipse已经为我处理了所有事情。)
答案 0 :(得分:2)
稍后通过学习如何使用xml布局,您将节省大量的麻烦。为自定义视图指定布局也使我失望。这是它的工作原理:
<view class="complete.package.name.goes.here.ClassName"
android:id="@+id/workspace"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</view>
因此,您应用的简单垂直布局应为:
<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"/>
<ImageView android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<view class="package.name.to.MySurfaceViewDerivedFromOpenGLSurface"
android:id="@+id/mySurfaceView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
</view>
</LinearLayout>
只要有id:
,您就可以获得布局文件中任何内容的引用ImageView myImageView = (ImageView ) findViewById(R.id.imageView1);