android動態控制組件的位置、大小和新的動畫,android動態
一、動態設定組件的位置其中view是需要改變位置的控制項,top是需要設制的位置;private static void setLayoutX(View view,int top) {//複製view的width、height、margin的值產生margin對象 MarginLayoutParams margin=new MarginLayoutParams(view.getLayoutParams());//設定新的邊距 margin.setMargins(margin.leftMargin+350,top,margin.rightMargin,margin.bottomMargin);//把新的邊距產生layoutParams對象 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(margin);//設制view的新的位置 view.setLayoutParams(layoutParams); } 二、動態設定組件的大小和動畫/** * * @param view 需要設定的組件 * @param height 需要設定的高度 * @param width 需要設定的寬度 * @param animation 需要設定的動畫 */private static void setLayoutScale(View view,int height,int width,LayoutAnimationController.AnimationParameters animation) { RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(view.getLayoutParams()); layoutParams.height=height; layoutParams.width=width; layoutParams.layoutAnimationParameters=animation; view.setLayoutParams(layoutParams); }
android控制項怎隨著手機螢幕大小不同而動態改變位置與大小
weight就是給比例啊,所有的weight加起來就是總的大小
android 動態產生控制項,怎設定控制項的大小
首先,你這個button被包含在哪個父控制項中,假定為LinearLayout,變數是mLinear
其次,30dip在代碼中要換成像素。
結果:
Button button = new Button(this);
int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
30, getResources().getDisplayMetrics());
button.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, px));
// 如果父視窗是FrameLayout就寫FrameLayout.LayoutParams
mLinear.addView(button);