是滑块的来源和课程链接:
http://www.oodlestechnologies.com/blogs/Facebook-Style-Slide-Menu-In-Android
在这种情况下,文件的宽度" left_menu.xml"确定TextView(android:layout_width =" 260dp") 如何将宽度设置为" LinearLayout" file" left_menu.xml"取决于设备屏幕?例如,我想要" LinearLayout"的宽度。一直是屏幕设备的1/3?或者以任何方式设置TextView宽度为设备屏幕宽度的1/3。
答案 0 :(得分:22)
要将设备屏幕的LinearLayout
或TextView
宽度设置为 1/3 :
首先获取设备屏幕宽度:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
try {
display.getRealSize(size);
} catch (NoSuchMethodError err) {
display.getSize(size);
}
int width = size.x;
int height = size.y;
现在只需创建一个LayoutParams
并将其设置为Text:
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams((int)(width/3),
LinearLayout.LayoutParams.WRAP_CONTENT); // or set height to any fixed value you want
your_layout.setLayoutParams(lp);
// OR
your_textView.setLayoutParams(lp);
答案 1 :(得分:5)
LinearLayout layout = (LinearLayout)findViewById(R.id.ll);
LayoutParams params = (LayoutParams) layout.getLayoutParams();
params.height = 100;
params.width = 100;
答案 2 :(得分:5)
LinearLayout linear = (LinearLayout) findViewById(R.id.ll);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
linear.setLayoutParams(params);
如您所见,您可以为LinearLayout.LayoutParams()构造函数设置Integer值,如下所示:
LinearLayout.LayoutParams cellParams = new LinearLayout.LayoutParams(0, 100);
构造函数需要像素而非dp(密度像素),这是从DP转换PX的公式:
(int) (<numberOfDPs> * getContext().getResources().getDisplayMetrics().density + 0.5f)
答案 3 :(得分:2)
以上答案是正确的。我只是建议未来的读者看看他们的xml布局文件,并确保LinearLayout元素没有使用权重属性。如果是这样,请考虑更新LayoutParams对象中的权重。 另一个好的做法是从您尝试调整的视图中检索布局参数对象,而不是从头创建一个并且必须设置所有值。
答案 4 :(得分:0)
LinearLayout YOUR_LinearLayout =(LinearLayout)findViewById(R.id.YOUR_LinearLayout)
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
/*width*/ ViewGroup.LayoutParams.MATCH_PARENT,
/*height*/ 100,
/*weight*/ 1.0f
);
YOUR_LinearLayout.setLayoutParams(param);