2012-05-09 82 views
0

我想實現的是:獻給SurfaceView屏幕的特定部分

enter image description here

我想有屏幕的是我SurfaceView的特定部分。我會用這個SurfaceView來製作一些動畫。但我想在SurfaceView旁邊加上一些Views,如TextViewRadioButtonGroup

所以我的問題是,這可能嗎?我正在尋找關於'animating sprites'的示例android源代碼,但是我找不到包含TextViewsSurfaceView的任何活動。全部延伸SurfaceView。如果這是可能的,我該怎麼做?你有我可以嘗試的示例源代碼嗎?

回答

0

試試這個我不是擴展surfaceview。

public class Preview_can_work extends Activity { 
     private SurfaceView surface_view; 
     SurfaceHolder.Callback sh_ob = null; 
     SurfaceHolder surface_holder  = null; 
     SurfaceHolder.Callback sh_callback = null; 

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

      getWindow().setFormat(PixelFormat.TRANSLUCENT); 

      surface_view = new SurfaceView(getApplicationContext()); 
      addContentView(surface_view, new LayoutParams(50, 50)); 

      if (surface_holder == null) { 
       surface_holder = surface_view.getHolder(); 
      } 

      sh_callback = my_callback(); // CREATING CALLBACK FOR YOUR SURFACE. 
      surface_holder.addCallback(sh_callback); 
     } 

     // THIS FUNCTION RETURNS CALLBACK OBJECT FOR SURFACEVIEW. 
      SurfaceHolder.Callback my_callback() {  
       SurfaceHolder.Callback ob1 = new SurfaceHolder.Callback() { 

        @Override 
        public void surfaceDestroyed(SurfaceHolder holder) { 
        } 

        @Override 
        public void surfaceCreated(SurfaceHolder holder) { 
        } 

        @Override 
        public void surfaceChanged(SurfaceHolder holder, int format, int width, 
          int height) { 
        } 
       }; 
       return ob1; 
     } 

    } 

現在您可以簡單地添加任何文本視圖或按鈕在您的佈局應該工作。

注意: - 我正在動態創建表面。在你的情況下,你可以做的是你可以在xml文件中創建所有的東西。而不是創建表面視圖創建視頻視圖。 SurfaceView surface_view =(SurfaceView)findViewById(R.id.video_view_id);

如果你是從你的佈局獲取id的視圖,那麼你必須從代碼中刪除一些行。它們是:

  surface_view = new SurfaceView(getApplicationContext()); 
      addContentView(surface_view, new LayoutParams(50, 50)); 

希望它會幫助你...

0

這絕對有可能,但您可能需要提供更多信息。如果你想要在textview旁邊運行一些簡單的動畫,那麼你甚至不需要表面視圖。只需創建一個imageview並在其上運行動畫(here is a tutorial我爲此創建的主題)

TextView及其親屬不會從Surfaceview派生它們派生自View類。再一次,如果你想執行簡單的動畫,我不認爲你需要一個表面視圖。如果你想做更多動態複雜的事情,那麼在我的開發博客上有also a tutorial關於如何利用SurfaceView進行遊戲。如果這更適合你的口味,那麼你可以創建一個自定義的表面視圖,然後將其與你想要的尺寸尺寸綁定到你的佈局中。