プログラムでカスタムビューの幅と高さを設定する方法は?

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:android.view.ViewGroup $ LayoutParams

どのようにこの例外を解決するには? 私を助けてください..

6

2 答え

ビューのonMeasure()メソッドをオーバーライドする必要があります。

For a nice example you can check here: http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/

And a very cool video that I would recommend is here: http://marakana.com/forums/android/general/563.html

お役に立てれば!

19
追加された
余分なリンクを追加することは確かに役立ちます。投票数を見てください:)
追加された 著者 Elye,
答えを書くのを始めたとき、あなたはまだ答えなかった。私が答えを取り除くと気分が良くなるなら、問題はありません。いずれにせよ、ユーザーはあなたの答えに投票することができます。
追加された 著者 Dimitris Makris,
いずれにしてもあなたは私の投票を持っています:)
追加された 著者 Dimitris Makris,
それは私と同じ答えではありませんか?他のリンクを追加すると別の答えになっていると思いますか?
追加された 著者 Walid Hossain,
あなたが答えを取り除く必要がないと思うなら、私は問題はありません。実際、私は同じことに直面していました(誰かが私が同じことを書いている間に答えました:)
追加された 著者 Walid Hossain,

Override the onMeasure() method, have a look here

10
追加された
ありがとうございました。..うまく働いています...ありがとう
追加された 著者 SuReSh PaTi,