2011-07-28 3 views
0

(обратите внимание, что я полный новичок в программировании андроида)Добавление взглядов на обычая 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?

Я увидел пример на веб-сайте sdk dev, где показано, как создавать представления на поверхностном виде openGL, но проблема в том, что у меня есть производный класс, и я не знаю, могу ли я указать его в файле XML (У меня есть 0% опыта в XML, 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> 

Вы можете получить ссылку на что-нибудь в ваших файлах макета до тех пор, есть идентификатор:

ImageView myImageView = (ImageView) findViewById(R.id.imageView1); 
+0

Ницца, спасибо большое: D – n3XusSLO

Смежные вопросы