Как установить ширину и высоту для пользовательского просмотра программно? - PullRequest
7 голосов
/ 19 декабря 2011

Я создал собственное представление с именем 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

Как решить это исключение? пожалуйста, помогите мне ..

Ответы [ 2 ]

19 голосов
/ 19 декабря 2011

Вы должны переопределить метод onMeasure () для View.

Для хорошего примера вы можете проверить здесь: http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/

И очень классное видео, которое я бы порекомендовал, здесь: http://marakana.com/forums/android/general/563.html

Надеюсь, это поможет!

9 голосов
/ 19 декабря 2011

Переопределите метод onMeasure(), посмотрите здесь

...