2017-04-02 158 views
0

我正在Android Studio中使用ImageButton,並在代碼開發過程中需要更改ImageButton的維度。其他設置ImageButton維度的方法

我在上一個問題中遇到了解決方案的一部分。

stackoverflow.com/questions/10992241/set-imagebutton-height-and-width-in-code

android.view.ViewGroup.LayoutParams params1 = button1.getLayoutParams(); 
    params1.height = size; 
    params1.width = size; 
    button1.setLayoutParams(params1); 
android.view.ViewGroup.LayoutParams params2 = button2.getLayoutParams(); 
    params2.height = size; 
    params2.width = size; 
    button2.setLayoutParams(params2); 
android.view.ViewGroup.LayoutParams params3 = button3.getLayoutParams(); 
    params3.height = size; 
    params3.width = size; 
    button3.setLayoutParams(params3); 

是否有其他的方式來管理,而不重複後續的代碼全部ImageButtons?

android.view.ViewGroup.LayoutParams params1 = button1.getLayoutParams(); 
    params1.height = size; 
    params1.width = size; 

回答

1

誰能把一個連續的方式佈局你的按鈕

贊(你可以根據屏幕的名字,如你所願動作名稱進行更改):button_1button_2button_3

你可以得到這樣的按鈕的名單是這樣的:

List<ImageButton> toBeResizedButtons() { 

    ArrayList<ImageButton> buttons = new ArrayList<>(); 

    for (int i = 1; i <= NUMBER_OF_BUTTONS ; i++) { 
     int id = getResources().getIdentifier("button_" + i, "id", getPackageName()); 
     buttons.add((ImageButton) findViewById(id)); 
    } 

    return buttons; 
} 

你可以調整所有這些在一個單獨的S這樣的處理

for(ImageButton b : toBeResizedButtons()) { 

    resize(b, size); 
} 

其中resize()假定您有一個固定的大小來調整它們的大小。

void resize(View v, int size) { 

    android.view.ViewGroup.LayoutParams params = v.getLayoutParams(); 
    params.height = size; 
    params.width = size; 
}