聲明:我重寫了這個問題的大部分內容,包括標題,因爲我已經部分地理解了它。窗口中可用空間的大小(不包括操作欄和邊距)
我想最大化所有屏幕尺寸的按鈕的大小,因爲它看起來愚蠢的,當它是小的。它應類似於此:
(可悲的是,我不能包括圖片,因爲我的名聲太低)
但是,如果我打開設備的方向,例如,按鈕火柴這是父母的寬度,變得比例醜陋。
(可悲的是,我不能包括圖片,因爲我的名聲太低。)
我現在已經知道如何得到它的母公司(中的LinearLayout)的尺寸,以及如何設置按鈕尺寸。我用下面的代碼:
- 窗口是包含的LinearLayout(僅)按鈕的ID。
此代碼位於onCreate() - MainActivity的方法。
// Adapt button's size to smaller dimension: final View window = findViewById(R.id.window); window.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { int width = window.getMeasuredWidth(); int height = window.getMeasuredHeight(); int smallerSize; if (width < height) { smallerSize = width; } else { smallerSize = height; } View button = findViewById(R.id.fartButton); button.setLayoutParams(new LinearLayout.LayoutParams(smallerSize, smallerSize)); window.getViewTreeObserver().removeOnGlobalLayoutListener(this); } });
這種方法的問題是,它似乎並沒有考慮到填充。按鈕get在較小的一側(縱向模式下的寬度,橫向模式下的高度)切斷一點點。
有趣的是,按鈕內的圖像非常適合窗口。例如,如果高度被切掉了一點,圖像仍然可以看到它的全部高度(只有一些「額外」部分的按鈕被切斷,像一個小小的邊框和陰影)。
有沒有辦法讓按鈕的最大尺寸,這將是窗口的大小,但沒有操作欄和減號填充,以防止按鈕的任何部分被切斷?
感謝您的回覆。我已爲圖像重新添加了免責聲明。你有一個非常有趣的方法!但是,如果你明白我的意思,這不是一種「乾淨」的方法。 ;)這也不能控制高度,所以按鈕仍然可能會「扭曲」。我需要一種方法來檢查,如果按鈕不是方形的,並在必要時進行調整。 – J0hj0h