[解決済み] ビューの getWidth() と getHeight() は 0 を返します。
2022-03-16 09:32:26
質問
私は、アンドロイドプロジェクトのすべての要素を動的に作成しています。ボタンの幅と高さを取得して、そのボタンを回転させることができるようにしようとしています。私はちょうどアンドロイド言語での作業方法を学ぼうとしています。しかし、それは0を返します。
いろいろ調べてみたところ、この処理は
onCreate()
メソッドを使用します。もしどなたか、その方法の例を教えていただけると助かります。
以下は私の現在のコードです。
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);
}
よろしくお願いします。
解決方法は?
を呼び出しています。
getWidth()
が早すぎるのです。UIはまだサイズ調整されておらず、画面上にレイアウトされていません。
アニメーション化されたウィジェットは、クリック可能な領域を変更しないので、ボタンがどのように回転しても、元の方向でクリックに応答します。
とはいうものの、この場合 ディメンションリソース を使用してボタンのサイズを定義し、レイアウトファイルとソースコードからそのディメンションリソースを参照することで、この問題を回避することができます。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
Spring Boot による HTTPS アクセスの設定
-
プロジェクトの依存関係を解決できなかった 解決
-
JSPで「リストが型解決できない!」の解決方法
-
テストが見つかりませんでした
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
プロジェクトの依存関係を解決できなかった 解決
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind