2011-07-28 150 views
0

(注意,我是Android編程的初學者)在自定義GLSurfaceView上添加視圖

我有一個派生自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文件中specifing填充位置?

我在sdk dev網站上看到了一個例子,展示瞭如何在openGL表面視圖上創建視圖,但問題是我有一個派生類,我不知道我是否可以在XML文件中指定它(我在XML中有0%的經驗,到目前爲止,Eclipse爲我處理所有事情)。

回答

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); 
+0

不錯,非常感謝:D – n3XusSLO