2017-11-07 5 views
0
View.setPivotX(float value) 

私はこのメソッドが入力として "パーセント"を取り、最初は0fが左端を表し、1fは右端を表していると考えました。PivotXをビューの右端に設定するにはどうすればよいですか?

しかし、テストの後ではありません。 documentationから、あまり明確ではありませんが、ピクセル単位で絶対的な位置に渡す必要があるようです。

私はview.setPivotX(view.getRight())を試しましたが、結果は私が期待したものではありません。ビューは代わりに画面外になります。

So ...ビューを右端まで正しくピボットするにはどうすればよいですか? (下端に同じ、ピボットYについて)

P.S.私はアニメーションを行う目的を求めていないことに注意してください。単にビューのサイズを特定の比率で縮小したいだけです。

+1

view.getWidth()? – rupinderjeet

+1

確かに 'getWidth()'が何かを返すことを確認してください!= 0、私は "レイアウト段階"がすでに完了していることを意味します – pskink

答えて

1

左上:

view.setPivotX(0); 
view.setPivotY(0); 

左中央:

view.setPivotX(0); 
view.setPivotY(view.getHeight()/2); 

左下:

view.setPivotX(0); 
view.setPivotY(view.getHeight()); 

あなたがActivityonCreate()FragmentonCreateView(...)方法でピボットを設定したい場合は

(景色まだ測定されていない)あなたが行うことができますこれは:

view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      view.setPivotX(0); 
      view.setPivotY(0);     

      //some other view transformations 

      view.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
     } 
    }); 
+0

母私はこれを理解できないと自分自身が嫌いです。ちなみに、他人のための暖かいリマインダー、GONEビューへのgetWidth()とgetHeight()は0を返します。 –

関連する問題