Android中動態改變佈局中控件的位置

一、通過ViewGroup.LayoutParams()

以控件在RelativeLayout中爲例,其他佈局中也是一樣的,可以通過修改控件的magin屬性來改變控件的位置。

// 需要注意的是,此時構造參數中的兩個屬性爲控件的寬和高(px),而不是父佈局的寬和高。
RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(100,100);
layoutparams.setMargin(left,top,right,bottom);//直接設置四個方向的magin
//layoutparams.addRule(RelativeLayout.CENTER_VERTICAL)//添加控件在佈局中顯示的規則。
layoutparams.setLeftMargin(left);
layoutparams.setTopMargin(top);
layoutparams.setRightMargin(right);
layoutparams.setBottomMargin(bottom);
mButton.setLayoutParams(layoutparams);//mButton爲你想要修改的控件

二、通過屬性動畫

移動 translationXtranslationY

  • float translationX :表示在X軸上的平移距離,以當前控件爲原點,向右爲正方向,參數 translationX 表示移動的距離。
  • float translationY :表示在 Y 軸上的平移距離,以當前控件爲原點,向下爲正方向,參數 translationY 表示移動的距離。
ObjectAnimator animator = ObjectAnimator.ofFloat(tv, "translationX", 0, 200, -200,0);  
animator.setDuration(2000);  
animator.start();  
指定的移動距離是(0, 200, -200,0),所以控件會從自身所有位置向右移動 200 像素,然後再移動到距離原點-200 的位置,最後回到原點

//參數一:要操縱的view;
//參數二:要操縱的屬性(translationX、translationY、rotationX、rotationY、rotation、scaleX、scaleY, alpha)
//參數三:可變數組參數,代表屬性變化的一個取值過程。
ObjectAnimator translationX = ObjectAnimator.ofFloat(mTestView, “translationX”, 300);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章