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、開始点はビューの右下隅です。