[問題] OpenGL繪圖後 可再疊上其他Android元件嗎?
由於 OpenGL 繪圖功能部份較快一點
所以這部份不打算再換回去 Android 本身提供的 bitmap/canvas 繪圖功能了
但是一些文字或資訊要顯示在畫面上
用 OpenGL 就有點不好上手
於是就想到是否可以用 OpenGL 畫出的東西當底圖
再加上 Android 提供的一些基本元件(Button/TextView/EditText/...)
來完成我想要做到的畫面效果?
構圖如下
┌────────────┐
│ 這裡放文字訊息 │
├────────────┤
│ │
│ │
│ │
│ │
│ │
│這裡是OpenGL有圖的區域 │
│ │
│ │
│ │
│ │
├────────────┤
│ 這裡也是放文字訊息 │
└────────────┘
然後 一般看到的 OpenGL 程式
都是在第一個呼叫的 Activity 裡的 onCreate() 設定畫面內容為GLSurfaceView
就像下面這段程式
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
glSurface = new GLSurfaceView(this);
glSurface.setRenderer(xxx);
setContentView(glSurface);
}
有沒有辦法 在 setContentView(glSurface) 之後
再疊上 layout檔案裡的 main.xml 設定好的畫面呢?
感謝回答.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.126.243
※ 編輯: ericinttu 來自: 59.117.126.243 (09/18 01:32)
→
09/18 14:45, , 1F
09/18 14:45, 1F
→
09/18 14:46, , 2F
09/18 14:46, 2F
→
09/18 14:46, , 3F
09/18 14:46, 3F
→
09/18 22:37, , 4F
09/18 22:37, 4F
→
09/18 23:24, , 5F
09/18 23:24, 5F
→
09/18 23:24, , 6F
09/18 23:24, 6F
→
09/18 23:24, , 7F
09/18 23:24, 7F
→
09/18 23:27, , 8F
09/18 23:27, 8F
→
09/18 23:27, , 9F
09/18 23:27, 9F
先感謝 badwork 給的一些提示線索
可以用出來了
我的做法是
layout 部份是採用
FrameLayout
- FrameLayout (要放全螢幕畫面的 OpenGL, 取個名字叫 fl_opengl)
(雖是全螢幕的, 但要畫的圖是在中間的正方形那一塊,
所以才會想要用這樣的 layout)
- LinearLayout (放最上面的文字輸出,可能會用到兩三排所以用Linear方式
- RelativeLayout (放最下面的文字或按鈕,為了置底所以用Relative方式)
先把 main.xml 定義好,
再來寫 activity 部份.
// class 裡的屬性
private GLSurfaceView glSurface;
FrameLayout fl_opengl;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// 先跟平常的 android app 一樣,
// 有 onCreate() 跟 setContent(R.layout.main)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 取得要放 OpenGL 畫面的 FrameLayout-View
fl_opengl = (FrameLayout)findViewById(R.id.fl_opengl);
// 執行OpenGL動作, 再把 OpenGL Surface View 連接到 fl_opengl
glSurface = new GLSurfaceView(this);
glSurface.setRenderer(xxx);
fl_opengl.addView(glSurface);
}
※ 編輯: ericinttu 來自: 59.117.117.181 (09/19 06:19)
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章