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

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 に答える
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 に答える