android 用程式碼完全實現xml佈局的控制
阿新 • • 發佈:2019-02-17
有的時候我們必須用程式碼來控制佈局,最常見的就是長和寬,其實用程式碼控制可以做到xml程式碼控制不了的目的。看如下程式碼。
View view=((Activity)context).getLayoutInflater().inflate(R.layout.vehicle_select_layout,null); TextView postionTextView=(TextView) view.findViewById(R.id.positionid); Display display =((Activity)context).getWindowManager().getDefaultDisplay();// 為獲取螢幕寬、高 Window window = ((Activity)context).getWindow(); ViewGroup.LayoutParams windowLayoutParams = window.getAttributes(); // 獲取對話方塊當前的引數值 windowLayoutParams.width = (int) (display.getWidth() * 0.7); // 寬度設定為螢幕的0.95 windowLayoutParams.height = (int) (display.getHeight() * 0.6); // 高度設定為螢幕的0.6 LinearLayout.LayoutParams p = newLinearLayout.LayoutParams( windowLayoutParams.width, LinearLayout.LayoutParams.WRAP_CONTENT ); postionTextView.setLayoutParams(p); //用程式碼動態的控制佈局。
我可以獲取到螢幕的寬高,進而能夠根據比例去控制子控制元件的寬和高。這樣真的是非常爽的。
下面給出個獲取actionbar高度的方法,親測可用
TypedValue tv = new TypedValue(); if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,context.getResources().getDisplayMetrics()); } else { }