アクティビティが作成された後、Androidアプリのビューにアニメーションを適用しようとしています。これを行うには、ビューの現在のサイズを決定し、現在のサイズから新しいサイズにスケーリングするアニメーションを設定する必要があります。ユーザーからの入力に応じてビューのサイズが異なるため、この部分は実行時に実行する必要があります。私のレイアウトはXMLで定義されています。
これは簡単な仕事のようで、明らかに私の問題を解決したものはありませんが、これに関して多くのSOの質問があります。おそらく私は明らかな何かを見逃しています。私は自分の見解のハンドルを手に入れます:
ImageView myView = (ImageView) getWindow().findViewById(R.id.MyViewID);
これは罰金を動作しますが、呼び出し時にgetWidth()
、getHeight()
、getMeasuredWidth()
、getLayoutParams().width
、など、彼らはすべてのリターン0は、私はまた、呼び出しを手動しようとしたmeasure()
の呼び出しに続いてビューにgetMeasuredWidth()
、それは効果がありません。
私はこれらのメソッドを呼び出して、私のアクティビティのonCreate()
とでデバッガのオブジェクトを検査してみましたonPostCreate()
。実行時にこのビューの正確な寸法を把握するにはどうすればよいですか?
match_parent
)。この場合、ビューが描画される前でも(たとえば、アクティビティのonCreate()メソッドから)安全に呼び出すことができる簡単なソリューションは、Display.getSize();を使用することです。詳細については、stackoverflow.com / a / 30929599/5025060をご覧ください。これは@NikReimanが要求したものではないことを知っており、このより簡単な方法を使用できる可能性のある人にメモを残しています。