嘿大家我目前正在开发我的第一个应用程序,我面临一个奇怪的问题。 我的布局中有5个按钮,其高度由函数计算,以便为每个屏幕获得正确的大小。
该功能工作正常并几乎正确设置每个按钮的高度,除了底部的一条小线,我想这是某种舍入错误?
也许有人可以指出我正确的方向,我无法弄清楚这一点。 提前谢谢。
x' = xFactor * x + xShift
y' = yFactor * y + yShift
正如你所看到的,我得到了displayMetrics并将它们除以5,因为我有5个瓷砖,它们必须恰好是屏幕的1/5。 “tilesize”将在稍后的代码中应用于按钮。
在我看到的图片中,您可以看到按钮在屏幕上几乎正确拉伸,除了我用红色圈出的小白线。 这条线可能看起来很小,但我不能让它消失,它真的让我烦恼,而且在我有不同大小的按钮和面板的其他活动中也变得更加明显。
所以如果你已经读过这篇文章了,那就谢谢了!如果您看到任何改进我的代码的方法,请告诉我:)
答案 0 :(得分:4)
不使用权重属性动态地使用线性布局和子文本视图来计算尺寸。它会解决你的问题。
以下是示例代码
$(window).resize(function() {
if($(window).width() <= 1200) {
//You code here
}else {
//You code here
}
});
答案 1 :(得分:0)
我们有更好的选择来显示相同重量的视图。您可以将LinearLayout与android:orientation="vertical"
一起使用。将所有TextView添加到LinearLayout并设置All TextView属性android:layout_width="0dp"
,android:layout_height="match_parent"
和android:layout_weight="1"
。
使用LinearLayout和weight属性,我们可以轻松划分屏幕。
答案 2 :(得分:0)
不要试图动态获取大小,而是尝试线性布局并给出高度和重量
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@android:color/holo_orange_light"
android:gravity="center"
android:text="item1"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@android:color/holo_blue_light"
android:gravity="center"
android:text="item2"
/>
如果你想水平添加按钮而不是使用水平方向和权重属性
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightsum="10"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="5"
android:background="@android:color/holo_orange_light"
android:gravity="center"
android:text="item1"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_weight="5"
android:background="@android:color/holo_blue_light"
android:gravity="center"
android:text="item2"
/>