0

デバイスの画面の上部からビューまでの距離を取得したいと思います。

アニメーションを使用してアクティビティでいくつかのことを行っていますが、特定の時点でアニメーションを開始する必要があります。これは TranslateAnimation であり、パーセンテージで移動距離が与えられます。

元:

Animation animation = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f,
                Animation.RELATIVE_TO_PARENT, 0.1f, Animation.RELATIVE_TO_PARENT, 0.0f
            );

上記のコードは、画面上部の 10% 下から開始し、画面上部に揃えられるまで上に移動するビューをアニメーション化するために使用されます。

私の目的では、必要な正確な値はデバイスによって異なる可能性があるため、値 0.1f をハードコードすることはできません。0.1f の代わりに使用する動的な値を決定する方法が必要です。この値は、別の特定のビューが存在する画面の上部からの距離である必要があります。

したがって、基本的に、私が望んでいるのは、画面上の既存のビューを取得し、それが画面の上部からどれだけ離れているかを判断する方法です。

4

2 に答える 2

2

このViewクラスには 2 つの便利なメソッドがgetLocationOnScreen()ありgetLocationInWindow()、親ビューだけでなく、ディスプレイ全体に対するビューの位置を直接取得できます。int[]メソッドは、x/y 位置が入力される場所を事前に初期化します。

メソッドgetLeft()getTop()も同様に役立つ場合がありますが、これらは指定された の親に対する座標を返すことに注意してください。これは、この場合に必要なものである場合とそうでない場合があります。

于 2012-07-23T21:07:48.070 に答える
0

メソッド getLeft() および getTop() を呼び出して、ビューの位置を取得することができます。前者は、ビューを表す四角形の左座標または X 座標を返します。後者は、ビューを表す四角形の上部 (Y) 座標を返します。これらのメソッドはどちらも、親を基準としたビューの位置を返します。たとえば、getLeft() が 20 を返す場合、それはビューがその直接の親の左端から 20 ピクセル右にあることを意味します。

Android 開発者サイトから

于 2012-07-23T21:01:31.697 に答える