2011-12-19 19 views
6

Stworzyłem własny widok nazwie MyDraw, to jest mój kod MyDraw,Jak programowo ustawić szerokość i wysokość niestandardowego widoku?

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); 

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

dodałem widok w pliku XML przy użyciu nazwy pakietu. Działa dobrze. Teraz chcę, aby ustawić wysokość i szerokość dla MyDraw w czasie wykonywania, za które Użyłem poniższy kod,

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

ale mam podobny wyjątek,

java.lang.ClassCastException: Android. view.ViewGroup $ LayoutParams

Jak rozwiązać ten wyjątek? proszę mi pomóc ..

+1

Możliwy duplikat programu [wysokość i szerokość niestandardowego widoku systemu Android jest wyświetlany programowo (http://stackoverflow.com/questions/5042197/android-set-height-andwidth-of-custom-view-programmically) –

Odpowiedz

9

zastąpić metodę onMeasure(), zajrzyj here

+0

thanks gość ... działa dobrze ... dzięki –

18

Musisz zastąpić metodę onMeasure() widoku.

Na miły przykład można sprawdzić tutaj: http://kahdev.wordpress.com/2008/09/13/making-a-custom-android-button-using-a-custom-view/

i bardzo fajny film, który chciałbym polecić jest tutaj: http://marakana.com/forums/android/general/563.html

nadzieję, że to pomaga!

+1

Czy to nie jest ta sama odpowiedź co moja? Czy uważasz, że dodanie jakiegoś innego linku sprawia, że ​​jest to inna odpowiedź? –

+3

Po rozpoczęciu pisania odpowiedzi nie otrzymałeś jeszcze odpowiedzi. Jeśli czujesz się lepiej, jeśli usunę odpowiedź, nie mam problemu. W każdym razie użytkownik może głosować na twoją odpowiedź. –

+0

Jeśli uważasz, że nie musisz usuwać odpowiedzi, nie mam problemu. W rzeczywistości wiele czasu miałem do czynienia z tym samym (Ktoś odpowiedział, pisząc to samo) :) –

Powiązane problemy