1

我想获取设备的宽度大小并将其放入“android:layout_width”

我试图这样做:

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;
}
4

3 回答 3

1

你们可能错过了明显的......如果你只是要获得宽度并用它填充字段,那么为什么不使用 layout_width="fill_parent" 呢?您可以从布局文件中调用方法的唯一位置是 android:onClick="doSomething()",我强烈反对这种做法。

于 2013-03-26T01:57:18.730 回答
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所指出的,没有必要从布局中调用方法。

于 2013-03-25T23:27:49.340 回答
0

您不能从 xml 布局调用 java 方法。

weightSum/weight使用布局属性可以轻松实现您想要做的事情。

只需为视图的父布局组(Linearlayout,framelayout ...)设置 weightSum,如下所示:

android:WeightSum="4"

并为您的视图集:

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

然后视图将自动缩放到屏幕宽度的 1/4

于 2013-03-25T23:16:59.940 回答