我想创建一个如下所示的全屏页面:
---------------------------------------
| -------- --------------------------- |
|| || TextView ||
|| | --------------------------- |
|| Image | ----------------- -------- |
|| View || || ||
|| || TextView || ||
|| || || Image ||
|| || || View ||
| -------- ----------------- | ||
| --------------------------- | ||
|| TextView || ||
| --------------------------- -------- |
---------------------------------------
其中每个ImageView占用父布局宽度的最多20%。
主要问题:真的......最好的方法是什么?经过几个小时的搜索,我能想到的最好的想法是获得屏幕的宽度,并简单地将视图的宽度设置为最大20%。但是,这直观地看起来并不是最佳实践解决方案。 (例如,如果应用程序没有全屏运行,则此解决方案将无效。)LinearLayout将不适用于页面布局的方式(看起来我必须使用RelativeLayout)。而且我认为最好根据父视图的宽度设置视图的宽度(而不是屏幕的宽度),但我也不清楚如何做到这一点,因为当时我正在尝试为了设置我的子视图的宽度,parentView.getWidth()返回0.有没有人有如何创建页面的任何好的,干净的解决方案,如上所示?
次要问题:有人知道如何在图像周围包装文字,如上所示?经过更长时间的搜索,我无法找到解决方案;好像你需要将几个TextView拼接在一起。有没有更好的方法让我失踪?
感谢任何人都能提供的任何信息。
答案 0 :(得分:1)
您可以在XML布局中使用android:layout_weight属性来实现此目的。
答案 1 :(得分:1)
您可以通过每个部分3个线性布局实现此目的。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.2"
android:orientation="horizontal"
android:weightSum="1" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.2"
android:orientation="vertical"
android:weightSum="1" >
<ImageView .... />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
其他部分应与不同的重力对齐。
我知道很多布局和权重,这个解决方案定义并不是最好的性能。也许其他人可以改进它
答案 2 :(得分:0)
我不确定这是否可行。即使它确定它是一个小于4“大的屏幕的最佳布局?也许不是试图弄清楚如何做这个布局提出更适合小屏幕的那些。
如果android sdk很难做到,那么你可能不应该这样做。
答案 3 :(得分:0)
关于第二个问题,您可以使用
将图像定位到TextView的顶部,底部,右侧或左侧android:drawableTop
android:drawableBottom
android:drawableLeft
android:drawableRight
您也可以使用
设置填充android:drawablePadding
当您指定设计的更多细节时,我会尝试回答第一个问题。无论如何,我建议使用RelativeLayout。
答案 4 :(得分:0)
a)layout_weight似乎不适用于RelativeLayouts;看起来它只是一个LinearLayout标签。正如matto在上面指出的那样,我看不到用LinearLayouts创建我的特定设置的任何方法,因为右图像没有与左对齐。 (如果有办法,你可以告诉我......)
b)啊,谢谢。不知怎的,我错过了drawableLeft等标签。我会尝试一下,看看是不是这样。
c)至于屏幕尺寸,我正在考虑安装Android平板电脑。没有任何大牌明星,但可能有些人会下线。我同意,在一个小的4英寸屏幕上,这种布局可能没有意义。
我不确定我的问题还需要哪些其他设计细节;我认为我上面提到的布局就足够了。还有什么具体的我可以说澄清这个问题吗?