Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使布局随着屏幕大小的变化而按比例调整大小?_Android_Xml_Android Layout - Fatal编程技术网

Android 如何使布局随着屏幕大小的变化而按比例调整大小?

Android 如何使布局随着屏幕大小的变化而按比例调整大小?,android,xml,android-layout,Android,Xml,Android Layout,我有9行6列的按钮,因此我使用此代码按比例更改每个按钮的大小: DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); height = displaymetrics.heightPixels; width = displaymetrics.widthPixels; int Or

我有9行6列的按钮,因此我使用此代码按比例更改每个按钮的大小:

DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    height = displaymetrics.heightPixels;
    width = displaymetrics.widthPixels;

    int Orientation = getResources().getConfiguration().orientation;

    if(Orientation == Configuration.ORIENTATION_PORTRAIT)
    {
        Button btn1 = (Button) findViewById(R.id.button1);
        btn1.setLayoutParams(new LayoutParams(height/10,width/7));
        Button btn2 = (Button) findViewById(R.id.button2);
        btn2.setLayoutParams(new LayoutParams(height/10,width/7));
        Button btn3 = (Button) findViewById(R.id.button3);
        btn3.setLayoutParams(new LayoutParams(height/10,width/7));
        Button btn4 = (Button) findViewById(R.id.button4);
        btn4.setLayoutParams(new LayoutParams(height/10,width/7
但这并不能改变按钮的大小,但它们并不适合。下面是我的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="wrap_content"
android:layout_margin="5dp" >

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

    <TextView
    android:id="@+id/ResultText"
    android:gravity="right"
    android:textSize="20sp"
    android:background="#AAAAAA"
    android:layout_weight="1"
    android:textColor="#FFFFFF"
     />

</TableRow>

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

    <TextView
    android:id="@+id/InputText"
    android:background="#BBBBBB"
    android:gravity="right"
    android:textColor="#FFFFFF"
    android:layout_weight="1"
    android:layout_marginTop="4dp"
    android:textSize="15sp" />


</TableRow>

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

    <TextView
    android:id="@+id/memoryStatText"
    android:background="#BBBBBB"
    android:gravity="right"
    android:textColor="#FFFFFF"
    android:layout_weight="1"
    android:layout_marginTop="4dp"
    android:textSize="15sp"
    android:layout_height="wrap_content" />

</TableRow>

<TableRow
    android:id="@+id/tableRow3"
    android:layout_width="wrap_content"
    android:weightSum="1" >

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

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

    <Button
    android:id="@+id/buttonMC"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="0dp"
    android:layout_marginTop="10dp"
    android:layout_weight="0.166"     
    android:text="MC"
    android:onClick="ProcessInput"
    android:gravity="fill" />
但这无缘无故地减少了按钮的宽度。我做错了什么。我的问题基本上是,我能让我的布局既适合水平布局,又适合垂直布局吗

以下是我在两种情况下的图像:

这是我的第二张照片:

尝试将您的TableLayout height设置为
匹配\u parent

<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:stretchColumns="*"> 


并确保根据您的方向删除代码。

尝试使用自定义视图组来布局您的孩子我是个新手,不知道该如何操作,您能给我一个链接,指向一些易于理解的教程吗,我想在创建三个或四个应用程序之后考虑创建自定义视图组。我不太清楚OnCeloMulnS完全匹配,问题是行的高度。
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:stretchColumns="*">