2014-03-12 42 views
0

這裏是快照我的應用程序是什麼樣子我的android應用程序佈局不適合不同的設備?

Screenshot vertical

它適合在某些設備上,而不是其他人:

Screenshot horizontal

正如你所看到的,水平也符合得很好沒有有什麼關係。我怎樣才能確保它垂直完美?

這裏是我的XML代碼:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<TableLayout 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_margin="5dp" 
android:layout_weight="1" 
android:orientation="vertical" > 

<TableRow 
    android:id="@+id/tableRow0" 
    android:layout_width="match_parent" 
    android:weightSum="1" > 

    <TextView 
    android:id="@+id/ResultText" 
    android:layout_width="0dp" 
    android:gravity="right" 
    android:background="#AAAAAA" 
    android:layout_weight="1" 
    android:textSize="20sp" 
    android:textColor="#FFFFFF" 
    android:layout_height="fill_parent" 
    android:maxLines="3" 
    android:scrollbars="vertical" />" 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="fill_parent" 
    android:weightSum="1" > 

    <TextView 
    android:id="@+id/InputText" 
    android:layout_width="0dp" 
    android:background="#BBBBBB" 
    android:gravity="right" 
    android:textColor="#FFFFFF" 
    android:layout_weight="1" 
    android:layout_marginTop="4dp" 
    android:textSize="20sp" 
    android:maxLines="3" 
    android:scrollbars="vertical" /> 


</TableRow> 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="fill_parent" 
    android:weightSum="1" > 

    <TextView 
    android:id="@+id/memoryStatText" 
    android:layout_width="0dp" 
    android:background="#BBBBBB" 
    android:gravity="right" 
    android:textColor="#FFFFFF" 
    android:layout_weight="1" 
    android:layout_marginTop="4dp" 
    android:textSize="15sp" 
    android:maxLines="3" 
    android:scrollbars="vertical" />  
</TableRow> 

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="0.1" 
    android:weightSum="1" > 

    <Button 
    android:id="@+id/buttonMAdd" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="M+" 
    android:onClick="ProcessInput" 
    android:layout_height="wrap_content" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonMRemove" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="M-" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonMC" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="MC" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonMR" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="MR" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonClearAll" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="C" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonDel" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="del" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonPower" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:textSize="12sp"  
    android:text="pow" 
    android:gravity="fill" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonFactorial" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.166"  
    android:text="x!" 
    android:layout_height="match_parent" 
    android:onClick="ProcessInput" 
    android:gravity="fill" /> 



</TableRow> 

<TableRow 
    android:id="@+id/tableRow4" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="0.1" 
    android:weightSum="1" > 

    <Button 
    android:id="@+id/button1" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="1" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button2" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="2" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button3" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="3" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button4" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="4" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button5" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="5" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button6" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="6" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button7" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="7" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button8" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="8" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/button9" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="9" 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" />" 

    <Button 
    android:id="@+id/button0" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="0" 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow5" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:weightSum="1" 
    android:layout_weight="0.1" > 


    <Button 
    android:id="@+id/buttonAdd" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="+" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonSubtract" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="-" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonDivide" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="/" 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonMultiply" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="x" 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonPeriod" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="." 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonSign" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="±" 
    android:onClick="ProcessInput" 
    android:gravity="fill" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonEqual" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="=" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonPercent" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1" 
    android:gravity="fill"  
    android:text="%" 
    android:layout_height="match_parent" 
    android:onClick="ProcessInput" /> 

    <Button 
    android:id="@+id/buttonLog10" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="log" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonLoge" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.1"  
    android:text="ln" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

</TableRow> 


<TableRow 
    android:id="@+id/tableRow6" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:weightSum="1" 
    android:layout_weight="0.1" > 

    <Button 
    android:id="@+id/buttonSin" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:gravity="fill" 
    android:text="sin" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonCos" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:gravity="fill"  
    android:text="cos" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" /> 

    <Button 
    android:id="@+id/buttonTan" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:gravity="fill" 
    android:text="tan" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" /> 

    <Button 
     android:id="@+id/buttonSinInverse" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="0dp" 
     android:layout_weight="0.125" 
     android:textSize="8sp" 
     android:gravity="fill" 
     android:text="@string/sin_inv" 
     android:onClick="ProcessInput" 
     android:layout_height="match_parent"/> 

<Button 
    android:id="@+id/buttonCosInverse" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:gravity="fill" 
    android:textSize="8sp" 
    android:text="@string/cos_inv" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent"/> 

<Button 
    android:id="@+id/buttonTanInverse" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125" 
    android:gravity="fill" 
    android:textSize="8sp" 
    android:text="@string/tan_inv" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent"/> 

<Button 
    android:id="@+id/buttonSquare" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="sqr" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" /> 

    <Button 
    android:id="@+id/buttonSquareRoot" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="0dp" 
    android:layout_weight="0.125"  
    android:text="sqrt" 
    android:onClick="ProcessInput" 
    android:layout_height="match_parent" 
    android:gravity="fill" />  

</TableRow> 

</TableLayout> 
</ScrollView> 

即使我寫不同的屏幕布局不同的XML,我不認爲我可以改變任何東西。因爲我無法改變任何事情。我不會添加更多的按鈕或類似的東西。 另外,如果我設置按鈕,文字瀏覽等使用DP的準確大小,它仍然是一個問題,因爲那樣它將是設備特定的。

我有9行縱向模式和7橫向模式。我想在調用之前計算屏幕的高度和寬度。的setContentView(R.layout.main);然後計算縱向模式下的總高度/ 9和橫向模式下的高度/ 7。任何人都可以告訴我如何繼續?這是如何動態知道佈局是橫向還是縱向,以及如何爲行分配高度。

[編輯]

現在我有這個

DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    double height = displaymetrics.heightPixels/9; 
    double width = displaymetrics.widthPixels/7; 

    int Orientation = getResources().getConfiguration().orientation; 
    if(Orientation == Configuration.ORIENTATION_LANDSCAPE) 
    { 
     Set height of all rows. 
    } 

如何設置所有行的高度。

回答

0

保持佈局:體重= 1爲所有按鈕和設置錶行FILL_PARENT

+0

我無法發佈我的屏幕截圖,因爲我沒有足夠的信譽,請您編輯我的帖子 – user3404195

+0

而且您還可以使用LinearLayout而不是表格Layout。 Arr水平或垂直顯示這些按鈕 – user8938

+0

這並沒有幫助 – user3404195

0

根據您的其他職位的佈局寬度,因爲你有不同的佈局,在代碼中,你可以決定用下面的代碼方向:

int orientation = getResources().getConfiguration().orientation 
if(orientation == Configuration.ORIENTATION_LANDSCAPE) 
//landscape code... 
else 
//portrait code... 

我在兩個主題中發佈了你。

+0

我檢查了它,我想設置像這樣的不同行的高度: DisplayMetrics displaymetrics = new DisplayMetrics(); \t \t getWindowManager()。getDefaultDisplay()。getMetrics(displaymetrics); \t \t double height = displaymetrics.heightPixels/9; \t \t double width = displaymetrics。像素寬度/ 7; int Orientation = getResources()。getConfiguration()。orientation; \t \t如果(方向== Configuration.ORIENTATION_LANDSCAPE)的所有行的 \t \t { \t \t \t設定高度。 \t \t} – user3404195

+0

您需要獲取每一行並更改佈局參數:TableRowObject.setLayoutParams(new LayoutParams(widthValue, heightValue)); – Parnit

+0

我寫了R.id.tablerow0.height,但它是錯誤,我怎麼能實際訪問和設置行的高度。 – user3404195

相關問題