这是我的xml代码。我遇到的问题是任何布局元素如按钮或imageview在预览模式下看起来都很好......但是当我在任何设备或模拟器上运行它时...它不能保持它的比例...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/im">
<TextView
android:layout_width="350dp"
android:layout_height="75dp"
android:layout_marginTop="-30dp"
android:background="@drawable/display"
android:layout_marginLeft="17dp"
android:id="@+id/display"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="-330dp"
android:layout_marginTop="150dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b1"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="150dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b2"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="150dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b3"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="250dp"
android:layout_marginLeft="-301dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b4"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="250dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b5"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="350dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b6"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="350dp"
android:layout_marginLeft="-301dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b7"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="350dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b8"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="250dp"
android:background="@drawable/drawable_button"
android:alpha="0.8"
android:id="@+id/b9"/>
</LinearLayout>
答案 0 :(得分:0)
您的实施问题是您使用了绝对位置,而理想情况下您应该使用相对定位。我使用gridlayout粘贴了一些代码。进行相关更改并相应使用。让我知道它是否适合你!
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_margin="30dp"
android:id="@+id/display"
android:background="#EDE7F6"
android:layout_margin="16dp"/>
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:columnCount="3"
android:rowCount="3"
android:layout_gravity="center">
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b1"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b2"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b3"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b4"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b5"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b6"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b7"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b8"/>
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:alpha="0.8"
android:background="#42A5F5"
android:id="@+id/b9"/>
</GridLayout>
</LinearLayout>
答案 1 :(得分:0)
尝试添加最大宽度和最大高度 layout_weight = “1” 到所有的酒吧尝试 比重=“中心” 你必须让手机为这些酒吧制作一个大小,如果你使用35dp大小,这在其他Android设备上是不同的,因为dp是已知的px大小,并且电话的重新设置并不是因为它在另一部手机中变得越来越小。 你可以只使用网格布局的线性布局。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
android:background="#000000">
<Button
android:layout_height="60dp"
android:layout_width="match_parent"
android:background="@drawable/icon_you_should_know"
android:maxWidth="360dp"/>
<LinearLayout
android:layout_height="120dp"
android:layout_width="match_parent"
android:orientation="horizontal"
android:gravity="top|center">
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_wounded_demon"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_maze_desert"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_working_with_darkness"/>
</LinearLayout>
<LinearLayout
android:layout_height="120dp"
android:layout_width="match_parent"
android:orientation="horizontal"
android:gravity="top|center">
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_weak_spot"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_none"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_none"/>
</LinearLayout>
<LinearLayout
android:layout_height="120dp"
android:layout_width="match_parent"
android:orientation="horizontal"
android:gravity="top|center">
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_none"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_none"/>
<Button
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0"
android:maxWidth="120dp"
android:background="@drawable/icon_none"/>
</LinearLayout>
我在我的应用程序中的布局及其对我的工作也希望能为你工作。
抱歉,我的英语不是很好。