2010-08-23 32 views
1

我想在一行中顯示EditTextButton。但按鈕的大小是固定的一些像素。我想獲得的Button寬度編程,這樣我就可以改變方向,以垂直或水平我的XML文件調整EditText寬度如下如何獲得android中的按鈕寬度

<LinearLayout 
    android:id="@+id/middleLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    > 
<EditText 
    android:layout_height="50px" 
    android:layout_width="wrap_content" 
    android:id="@+id/searchBox" 
    android:layout_marginTop="2px" 
    android:visibility="visible" 
    android:singleLine="true" 
    android:hint="Enter Zip Code, City &amp; State" 
    /> 
<Button 
    android:layout_height="wrap_content" 
    android:layout_width="20px" 
    android:id="@+id/searchBtn" 
    android:visibility="visible" 
    android:layout_marginTop="3px" 
    android:text="Search" 
    /> 
</LinearLayout> 

我對下面的代碼計算它。

searchBox = (EditText) findViewById(R.id.searchBox); 
searchbutton = (Button) findViewById(R.id.searchBtn); 
int searchIconWidth = searchbutton.getWidth(); 
searchBox.setWidth(getting_screen_width() - searchIconWidth); 

用於計算屏幕寬度我已經使用以下

private int getting_screen_width() 
    { 
    DisplayMetrics dm = null; 
    dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    String width = ""+dm.widthPixels ; 
    dm = null; 
     return Integer.parseInt(width); 
    } 

但是當我運行上面的代碼比EditText充分寬度&搜索按鈕未示出。在以像素爲單位獲取按鈕寬度時會出現什麼問題。

請幫我一把。提前致謝。

+0

我認爲如果寬度是一個問題。爲他們兩個設置相同的值。 – Praveen 2010-08-23 12:14:24

回答

0

也許你會想使用不同的景觀佈局。檢查this link

基本上,您可以在景觀中創建第二個佈局,在/res/路徑中創建一個新文件夾,名爲layout-land。在那裏放置您的新佈局具有相同的名稱,Android將負責其餘部分。

+0

你是對的,但我的問題是,當我試圖打印按鈕的寬度時,它顯示我在Logcat中爲0。所以EditText正在全屏顯示。我想知道在xml中給出的那個按鈕的寬度在程序中被視爲0px。 – Ashay 2010-08-23 12:07:08

+0

你在哪裏放置該日誌行? – Macarse 2010-08-23 12:11:34

+0

我正在打印searchIconWidth變量的值。我沒有在我的調試部分沒有發佈在這裏。 Log.d(「ButtonWidth」,「」+ searchIconWidth);但您可以在此行後面放置 – Ashay 2010-08-23 12:17:01