2013-03-25 70 views
1

的方法我想获得该设备的宽度尺寸,并把它变成“机器人:layout_width”如何调用从布局XML的Android

我试图做到这一点:

的android:layout_width =“GetSizeOfDevice()”

但它不工作... 我该如何调用布局xml的方法?

顺便说一下,GetSizeOfDevice()做的事:

Display display = getWindowManager().getDefaultDisplay(); 
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) 
{ 
    Point size = new Point(); 
    display.getSize(size); 
    int width1 = size.x; 
    return width1/4; 
} 
else 
{ 
    int width1 = display.getWidth(); 
    return width1/4; 
} 
+0

这样吗?..任何成功?..没有任何问题的答案能帮你吗? – sebster 2013-03-27 08:38:05

回答

0

这就是你如何得到宽度:

// getting the width of the display 
Context context = getActivity().getBaseContext(); 
WindowManager window = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
Display display = window.getDefaultDisplay(); 
final int width = display.getWidth(); 


然后通过使用.setWidth()设置新的宽度:

yourView.setWidth(width); 


我测试了这一点,并它的工作原理Bill Mote指出,不需要从布局中调用方法。

0

你不能叫从XML布局Java方法。

你正在尝试做的可以通过布局weightSum/weight属性可以轻松实现。

刚刚成立weightSum为您的视图的父布局组(的LinearLayout,FrameLayout里...)这样的:

android:WeightSum="4" 

并为您的视图设置:

android:Weight="1" 
andrpod:layout_width="wrap_content" 

那么该视图将自动缩放到你屏幕宽度的四分之一

+1

这应该是'安卓:weightSum'(小写“W”)和'机器人:layout_weight' – Squonk 2013-03-25 23:27:30

1

你们可能是缺少明显的...如果你只是要得到的宽度和与它填充字段,那么为什么不使用layout_width =“FILL_PARENT”?你可以从布局文件中调用一个方法的唯一地方是安卓的onClick =“DoSomething的()”和我会极力劝阻说。

+1

嗯,那家伙自找的。谁知道他在自己的代码中编造的错综复杂。但是,对于fill_parent你是对的。 – sebster 2013-03-26 11:58:55