2011-05-25 74 views
1

我正在使用地圖引擎。我想讓用戶旋轉地圖。如果我通過畫布上的標準繪圖執行旋轉操作,則會減慢手機速度,並且由標準畫布API旋轉的地圖圖塊看起來很糟糕。Android中的OpenGL

我在互聯網上發現了Android的一些OpenGL框架。但他們沒有一個做我想要的。他們中的大多數人不能在OpenGL活動中使用Android標準組件。

我想放一個由OpenGL繪製到佈局組件(例如,LinearLayout)的自定義視圖。因此,我可以將所有內容(包括OpenGL佈局)都放到一個Activity中。我相信它可以通過使用標準的Android OpenGL API來完成。但是OpenGL的繪製對我來說太難了。

是否有任何OpenGL框架讓我通過OpenGL繪製自定義視圖?我需要的只是一個支持簡單繪圖的框架。它被稱爲GLSurfaceView。

回答

3

它被稱爲GLSurfaceView。 在我的項目之一,我有這樣的:

public static GLView glSurfaceView; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    glSurfaceView = new GLView(this); 

    setContentView(glSurfaceView); 
} 

請務必使類擴展GLSurfaceView。

public class GLView extends GLSurfaceView 

在GLView類,你必須有這樣的:

private GLRenderer _renderer; 
public GLView(Context context) { 
    super(context); 
    _renderer = new GLRenderer(context); 
    setRenderer(_renderer); 
} 

的GLRenderer類將實現GLSurfaceView.Renderer

這ATLEAST是我認爲你是問。如果不是在下面發表評論,我會盡力回答。

+0

感謝布蘭登,我使用標準畫布解決了這個問題,因爲地圖引擎只需要2D渲染。我在數學上並不擅長(特別是在Matrix中不好,因此我不想使用GLSurfaceView來處理所有的矩陣來計算自己,而是尋找一個像cocos2D這樣的框架,它可以用作View組件。 – 2011-07-28 04:56:03

0

這是一個遺憾,你放棄了OpenGL,我最近發現它,並發現它堆好,然後做標準繪圖。使用紋理而不是將圖像保存爲位圖對象會更好地利用設備的內存(特別是在預蜂窩設備上),並且如果使用正交投影,則不需要費心使用OpenGL的一部分精美3D內容。此外,您不必再多次關心各種設備的分辨率,以便您放在屏幕上的所有東西都能很好地匹配(您仍然需要關心寬度和高度比例,但這樣會更好)。