2014-05-08 2 views
0

J'essaie de faire un plugin android pour l'unité.Impossible de créer SurfaceView

J'ai une activité que je commence manuellement comme ceci:

Activity activity = UnityPlayer.currentActivity; 
    Intent intent = new Intent(activity, VideoHelper.class); 
    activity.startActivity(intent); 

Dans l'activité que j'essaie de créer un SurfaceView, mais il ne fonctionne pas. Le SurfaceView n'est pas créé.

Activité:

public class VideoHelper extends Activity implements SurfaceHolder.Callback, OnCompletionListener 
{ 
    @Override 
    public void onCreate(Bundle bundle) 
    { 
     super.onCreate(bundle); 

     setContentView(R.layout.video_layout); 

     View view = findViewById(R.id.videoView); 
     if(view == null) 
     { 
      Log.d(LibraryMain.LogTag, "Could not create view"); 
     } 
     else 
     { 
      Log.d(LibraryMain.LogTag, "View created"); 
     } 
     //SurfaceHolder holder = view.getHolder(); 
     //holder.addCallback(this); 
    } 
    ... 
} 

video_layout.xml:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

    <SurfaceView android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:id="@+id/videoView"></SurfaceView> 

</LinearLayout> 

Je suis toujours dans le journal des Impossible de créer la vue. Est-ce que je fais quelque chose de mal? Ou y a-t-il un moyen de créer un code surfaceView?

+0

s'il vous plaît poster le Instand Log d'utiliser le LinearLayout essayer de créer juste SurfaceView (remplacer le LinearLayout avec SurfaceView et enlever l'orientation –

+0

n'a pas aidé, je l'ai changé la mise en page XML à ceci: Sobraj

Répondre

0

J'ai réussi à le faire fonctionner.

public void onCreate(Bundle bundle) 
{ 
    super.onCreate(bundle); 

    LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 
    _surface = (SurfaceView)inflater.inflate(R.layout.video_layout, null); 

    SurfaceHolder holder = _surface.getHolder(); 
    holder.addCallback(this); 

    addContentView(_surface, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
}