我开始使用换行内容并在按钮之间添加填充,但这是一个问题,因为在某些手机上它只需要一半的屏幕,所以我最终使用了权重。我的第一个问题是第1页上的按钮有0.5的屏幕尺寸和它们之间的填充为15dp所以每个按钮有0.5 * screenize / 7。如果我对第二个视图执行相同操作,则按钮的高度为0.5 * screensize / 3(因此更高的高度)。我也不知道如何使用权重按下页面底部的“发布”按钮。第二个问题是我也想使用权重作为宽度(到目前为止,我的重量是固定的大多数),但这可能会导致一些性能问题(我将使用太多的线性布局),因为这个家伙是在这里说 Android XML: Percentage Height and width to create unique layout。
我在Android中编码的view1图片的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/gradientf1"
android:background="@drawable/gradient"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.18"
android:orientation="vertical"
android:paddingTop="15dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Title1"
android:textColor="#fff"
android:textSize="30dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingTop="5dp"
android:text="Title2"
android:textColor="#fff"
android:textSize="15dp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.10"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="25dp"
android:background="@drawable/first" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginRight="27dp"
android:background="@drawable/second" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/third" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.50"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button1"
android:textColor="#fff" />
<Button
android:id="@+id/button2"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button2"
android:textColor="#fff" />
<Button
android:id="@+id/button3"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button3"
android:textColor="#fff" />
<Button
android:id="@+id/button4"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button4"
android:textColor="#fff" />
<Button
android:id="@+id/button5"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button5"
android:textColor="#fff" />
<Button
android:id="@+id/button6"
android:layout_width="270dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:layout_weight="1"
android:background="@drawable/btnstyle"
android:gravity="left|center_vertical"
android:paddingLeft="45dp"
android:text="Button6"
android:textColor="#fff" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.22"
android:layout_marginBottom="15dp"
android:orientation="vertical">
<Button
android:id="@+id/button7"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_weight="1"
android:text="Next step"
android:background="@drawable/nxtbtn"
android:textColor="#fff" />
<Button
android:id="@+id/button8"
android:layout_width="220dp"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="15dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_weight="1"
android:background="@drawable/nxtbtn"
android:text="Post it"
android:textColor="#fff" />
</LinearLayout>
</LinearLayout>
有没有其他方法在android中编码这两个图像?正如你所看到的那样,我还没有按钮末尾的+。一旦用户完成将通过点击按钮打开的数据(我还没有完成任何这些片段),那个+将会转入一个批准的('tick'符号)。我很抱歉的大小图像,但我找不到如何调整它们的大小
更新:我想要做的是在所有手机上都有相同的外观。我认为我可以通过使用重量和线性布局来做到这一点,但它非常棘手。
答案 0 :(得分:0)
两件事:
1)对主容器使用RelativeLayout
,这样就可以对齐&#34;发布它&#34;使用android:layout_alignParentBottom="true"
和&#34; Button-Container&#34;按钮到底部如你所愿(居中等)。
2)为了更好的测试,您应该使用按钮的样式,例如:
/res/values/styles.xml
中的:
<style name="CustomButton">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginTop">15dp</item>
<item name="android:layout_weight">1</item>
etc...
</style>
布局中的:
<Button
android:id="@+id/button4"
style="@style/CustomButton"/>
希望有所帮助。
答案 1 :(得分:0)
我在这里找到了一个解决方案https://plus.google.com/+AndroidDevelopers/posts/C8oaLunpEEj。 Google有一个新的支持库,可以在不使用权重的情况下实现此目的。这正是我所需要的。您只需将其添加到gradle compile 'com.android.support:percent:23.1.0'
并开始使用它,如
<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
app:layout_widthPercent="50%"
app:layout_heightPercent="50%"
app:layout_marginTopPercent="25%"
app:layout_marginLeftPercent="25%"/>
</android.support.percent.PercentRelativeLayout>
如果android抱怨layout_height / width只是添加它们,它就不会修改任何东西。