Androidアニメーションにおけるandroid:pivotXおよびandroid:pivotY属性のグラフィカルな意味



Graphical Meaning Android



Androidアニメーションでは、ズームアニメーション(スケールラベル)と回転アニメーション(回転ラベル)の両方にandroid:pivotXがあります。 android:pivotYこれら2つの属性の値はさまざまな形をとることがあり、よく理解されていません。この記事では、小さなデモを使用して、これら2つの属性の意味を示しています。これを読んだ後は、非常に直感的な感覚が得られると思います。

android:pivotXスケーリング/回転の開始点のX軸座標は、整数値、パーセンテージ(または小数)、およびパーセンテージp(50、50%/ 0.5、50%pなど)の3つのタイプになります。属性値が数値の場合、それは 現在のビューの左上隅、つまり原点に開始点として50pxを追加します 50%などのパーセンテージの場合は、 現在のコントロールの左上隅に幅の50%を追加します (つまり、それ自体の幅の中心)50%p(文字pは親の意味)の場合の開始点として、値のカーディナリティは親コントロールであり、50%pは次のように表されます。 現在の左上隅に、開始点のx軸座標としての親コントロールの幅の50%を加えたもの



要するに:オブジェクトの上端に対するピクセル(50)またはオブジェクトの上端に対するパーセンテージ(例:「50%」)または親コンテナの上端に対するパーセンテージ(例:「50%p」) )。

android:pivotYズーム/回転の開始点のY軸座標android:pivotX同様。



ズームアニメーションを例にとると、プロジェクトのresフォルダーの下にanimフォルダーを作成してから、次のようにフォルダーscale_anim.xmlに新しいフォルダーを作成します。

public class MainActivity extends Activity { private TextView mTvAnimation private Button mBtnStartAnimation @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) requestWindowFeature(Window.FEATURE_NO_TITLE) setContentView(R.layout.activity_main) mTvAnimation = findViewById(R.id.tv_animation) mBtnStartAnimation = findViewById(R.id.btn_start_animation) mBtnStartAnimation.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Get animation from XML file through loadAnimation Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.scale_anim) //Use startAnimation to pass the animation to the specified control mTvAnimation.startAnimation(animation) } }) } }
  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

MainActivity.javaは次のとおりです。

activity_main.xml
  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 十一
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 2. 3
  • 24
  • 25
  • 26

MainActivityレイアウトファイルscale_anim.xml次のとおりです。



android:pivotX='50%' android:pivotY='50%'
  • 1
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 十一
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 2. 3
  • 24
  • 25
  • 26

デモを実行した後の効果は次のとおりです。


画像

Will scale_anim.xmlの属性は、次のようにパーセンテージ/小数の形式に変更されます。

android:pivotX='50%p' android:pivotY='50%p'
  • 1

手術後の効果は以下のとおりです。


画像

再び

の属性は、次のようにパーセンテージpの形式に変更されます。

|_+_|
  • 1

手術後の効果は以下のとおりです。


画像

上記の3つの値のおおよその開始点を以下に示します:


画像

特に、android:pivotXとandroid:pivotYがパーセンテージ/小数の場合、両方が0.0の場合、開始点は両方が0.5の場合はビューの左上隅になり、開始点は両方が0.5の場合はビューの中心点になります。 1.0、開始点はビューの右下隅です。