2011-12-19 142 views
6

我已經創建了一個名爲MyDraw自定義視圖,這是我的MyDraw代碼,如何以編程方式設置自定義視圖的寬度和高度?

public class MyDraw extends View { 


    public MyDraw(Context context) { 
     super(context); 

    } 

    public MyDraw(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 

    } 

    public MyDraw(Context context, AttributeSet attrs) { 
     super(context, attrs); 

    } 
     ........................................ 
} 

我已經添加使用包名在XML文件中的視圖。它工作正常。現在,我想在運行時設置的高度和寬度爲MyDraw,對於我用下面的代碼,

mMyDraw.setLayoutParams(new LayoutParams(220, 300)); 

,但我得到異常喜歡,

java.lang.ClassCastException:機器人。 view.ViewGroup $ LayoutParams

如何解決這個異常? 請幫助我..

+1

[Android以編程方式設置自定義視圖的高度和寬度的可能重複](http://stackoverflow.com/questions/5042197/android-set-height-and-width-of-custom-view-programmatically) –

回答

9

覆蓋的onMeasure()方法,看看here

+0

謝謝老兄......它工作正常......謝謝 –

18

必須替換觀的onMeasure()方法。

對於一個很好的例子,你可以點擊這裏:http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/

而且一個非常酷的視頻,我會建議在這裏:http://marakana.com/forums/android/general/563.html

希望這有助於!

+1

與我的答案不一樣嗎?你認爲增加一些其他的鏈接是不同的答案嗎? –

+3

當你開始寫答案時,你還沒有回答。如果我感覺好一點,如果我刪除答案,我沒有問題。無論如何,用戶都可以爲您的答案投票。 –

+0

如果你認爲你不需要刪除答案,我沒有問題。事實上,很多時候我面臨同樣的事情(有人回答,當我寫同樣的):) –

相關問題