View's getWidth () und getHeight () geben 0 zurück

Ich erstelle alle Elemente in meinem Android-Projekt dynamisch. Ich versuche, die Breite und Höhe einer Schaltfläche zu ermitteln, damit ich diese Schaltfläche drehen kann. Ich versuche nur zu lernen, wie man mit der Android-Sprache arbeitet. Es wird jedoch 0 zurückgegeben.

Ich habe ein paar Nachforschungen angestellt und festgestellt, dass dies an einem anderen Ort als im @ erfolgen musonCreate() Methode. Wenn mir jemand ein Beispiel geben kann, wie es geht, wäre das großartig.

Hier ist mein aktueller Code:

package com.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.LinearLayout;

public class AnimateScreen extends Activity {


//Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout ll = new LinearLayout(this);

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(30, 20, 30, 0);

    Button bt = new Button(this);
    bt.setText(String.valueOf(bt.getWidth()));

    RotateAnimation ra = new RotateAnimation(0,360,bt.getWidth() / 2,bt.getHeight() / 2);
    ra.setDuration(3000L);
    ra.setRepeatMode(Animation.RESTART);
    ra.setRepeatCount(Animation.INFINITE);
    ra.setInterpolator(new LinearInterpolator());

    bt.startAnimation(ra);

    ll.addView(bt,layoutParams);

    setContentView(ll);
}

Jede Hilfe wird gebeten.

Antworten auf die Frage(26)

Ihre Antwort auf die Frage