OpenGL и Android относительное расположение

Я уже пытался задать этот вопрос наОтносительная верстка, но та первая попытка была не очень понятна.

Я хотел бы создать относительный макет надGLSurfaceView но макет должен выглядеть так:

<RelativeLayout
        android:id="@+id/View1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@raw/gi"
        android:orientation="vertical" >

        <ImageView
                android:id="@+id/imageView1"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:src="@drawable/b1" />

        <ImageView
                android:id="@+id/imageView2"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/imageView1"
                android:src="@drawable/b2" />

        <ImageView
                android:id="@+id/imageView3"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/imageView2"
                android:src="@drawable/b3" />
</RelativeLayout>

Тем не менее, если я кодирую это так, как они говорят в ответах, это работает, но изображения по-прежнему накладываются друг на друга. (Я использовал функции getId для addrules)

Поэтому я думаю о добавлении всего XML-файла и работаю таким образом, но каждый раз, когда я загружаю XML, приложение останавливается. Вот большая часть кода:

public class HelloWorld extends Activity {
...
protected void onCreate(Bundle savedInstanceState) {
    ....
    opengl = new GLSurfaceView(getApplication());
    opengl.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
        public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
              int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE};
              EGLConfig[] configs = new EGLConfig[1];
              int[] result = new int[1];
              egl.eglChooseConfig(display, attributes, configs, 1, result);
              return configs[0];
        }
    });

    renderer = new MyRenderer();
    mGLView.setRenderer(renderer);
    setContentView(opengl);
    addContentView(findViewById(R.id.View1), new RelativeLayout.LayoutParams(
              RelativeLayout.LayoutParams.FILL_PARENT,
              RelativeLayout.LayoutParams.FILL_PARENT));

Имейте в виду, что без последнего звонкаaddContentView приложение работает.

 user139859326 мая 2012 г., 20:37
я не мог ответить в течение еще 10 часов, поэтому я поставил его здесь, во всяком случае, обратно на мой вопрос, как мне изменить изображение в r.id.imageview1 при этом новом раздутом макете
 user139859326 мая 2012 г., 15:29
и как таковой мне удалось добавить целый XML-файл над представлением glsurface. Но мне интересно, как получить идентификатор каждого ребенка в r.layout.gi. Допустим, я хочу изменить изображение R.id.imageView1 ?????????????? (Особая благодарностьstackoverflow.com/questions/2335813/…)
 Nicol Bolas26 мая 2012 г., 15:46
Комментарии не являются ответами. Если вы хотите ответить на свой вопрос, на самом делеanswer с помощью & quot; Опубликовать свой ответ & quot; Кнопка внизу страницы.
 Codeman29 мая 2012 г., 17:45
Если вы используете OpenGL, вы должны использовать GLSurfaceView, а не RelativeLayout / LinearLayout
 user139859326 мая 2012 г., 15:28
Похоже, я отвечу на свой вопрос. вместо addcontentview я добавил следующее gi = new RelativeLayout (this); Посмотреть представление; LayoutInflater inflater = (LayoutInflater) getApplicationContext (). GetSystemService (Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate (R.layout.gi, null); hud.addView (вид); addContentView (gi, новый ViewGroup.LayoutParams (ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));

Ответы на вопрос(2)

    TextView counter = new TextView(getApplicationContext());
    counter.setBackgroundResource(R.drawable.counter);
    counter.setTextSize(50);
    counter.setTypeface(null, Typeface.BOLD);
    counter.setText(" 000");
    addContentView(counter, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
Решение Вопроса

вместо addcontentview я добавил следующее

gi=new RelativeLayout(this);
                View view; 
        LayoutInflater inflater = (LayoutInflater)   getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        view = inflater.inflate(R.layout.gi, null);
        hud.addView(view);
        addContentView(gi, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));

и как таковой мне удалось добавить целый XML-файл над представлением glsurface.

Но мне интересно, как получить идентификатор каждого ребенка в r.layout.gi. Допустим, я хочу изменить изображение R.id.imageView1 ??????????????

Кто-нибудь знает, как это сделать с текущим кодом?

Ваш ответ на вопрос