2010年11月14日 星期日

[Android] 如何在Layout檔案中使用自訂的View



如果現在在Layout檔案裡面拉了一個View的物件 , 但是想對這個View進行修改的動作自訂成我們想要的樣式和功能 , 假設現在在main.xml檔案裡面拉了一個VideoView





  




如果我們想要修改這個ViedoView的樣貌和功能的話 , 那必定要寫一個class extends VideoView
程式碼如下:
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.VideoView;

public class CustomVideoView extends VideoView
{

 public CustomVideoView(Context context)
 {
  super(context);
  // TODO Auto-generated constructor stub
  Log.d("Go to", "Context context");
 }

 public CustomVideoView(Context context, AttributeSet attrs)
 {
  super(context, attrs);
  // TODO Auto-generated constructor stub
  Log.d("Go to", "Context context, AttributeSet attrs");
 } 
 //可以發現進入的是CustomVideoView(Context context, AttributeSet attrs)這個建構子
    //所以留著覆寫他 , 否則程式會強制關閉
}


接著我們要修改main.xml裡原本VideoView的定義名稱







那在Activity中該如何取用呢?


import android.app.Activity;
import android.os.Bundle;

public class CustomVideoViewTest extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        CVView=(CustomVideoView)findViewById(R.id.VideoView);
    }
    
    CustomVideoView CVView;
}



大功告成!!!!

沒有留言:

張貼留言

Google Analytics