2010-10-30 69 views
1

layout_height我有一個包含幾個子視圖所有這些設置高度類似的佈局:如何檢索代碼

<View android:layout_width="fill_parent" 
    android:layout_height="18dip" 
    android:background="#ff000000" /> 

我怎樣才能檢索存儲在layout_height代碼的價值?

最終,我想要做的是能夠調整佈局中定義的大小,以便動態更改由layout_height定義的值,具體取決於屏幕分辨率和像素密度的分辨率。 在onLayout回調期間這樣做是唯一的方法嗎?

在onCreate上重新定義XML會容易得多。

評論,建議將不勝感激。

感謝 JY

回答

0

應該已經搜查一點點前進一步張貼問題。 這似乎是它的伎倆...

DisplayMetrics dm = new DisplayMetrics(); 
    this.getWindowManager().getDefaultDisplay().getMetrics(dm); 
    factor_y = (dm.ydpi * dm.heightPixels)/(160 * 480); 
    factor_x = (dm.xdpi * dm.widthPixels)/(160 * 320); 

LinearLayout layout = (LinearLayout) findViewById(R.id.mainlayout); 
for (int i = 0; i < layout.getChildCount(); i++) 
{ 
    View v = layout.getChildAt(i); 
    int height = v.getLayoutParams().height; 
    if (height > 0) 
    { 
     v.getLayoutParams().height = (int) ((float) height * factor_y); 
    } 
    int width = v.getLayoutParams().width; 
    if (width > 0) 
    { 
     v.getLayoutParams().width = (int) ((float) width * factor_x); 
    } 
} 
相關問題