0

对于必须在应用程序中实施的设计,我需要一些建议。这是它应该看起来的样子(抱歉图像的低分辨率,但这是我现在所拥有的)。

用户界面

所以设计的基本思想是:
我有一个 UI 组件,在我的情况下,我将使用 ProgressBar(带有红色填充的那个),它将保存有关某种用户数据的信息。例如,如果用户有歌曲列表,则进度条的最大值将是所有歌曲的数量,并且进度将由正在播放的曲目设置。如果我有 56 首歌曲并且我正在播放其中的第 23 首,则将根据该整数计算进度。进度条上方的点会指示我喜欢或不喜欢的歌曲。例如,如果我正在播放第 23 首歌曲并且它在我的收藏夹中,那么进度条上方的同一位置应该有一个点。

所以我的问题是,我应该使用什么 UI 组件在进度条上方添加点。我在考虑RelativeLayout/LinearLayout/FrameLayout,但据我所知,它们没有我可以执行的功能:坐标layout.addView(view, x, y);位置xy坐标。还是这样做的正确方法?也许有更好的方法来做我想要实现的事情。使用其他SubClass一些View.

欢迎任何形式的帮助/建议/建议!

提前致谢!

4

2 回答 2

1
  1. 在 Android 上,完全不建议使用特定值来定义布局位置(除非您使用屏幕尺寸作为参考)

  2. 如果 FILL_PARENT 和 WRAP_CONTENT 不起作用,请始终使用 DP(与密度无关的像素)来定义间距和位置。

在 android 中,根据复杂性和需要,有不同类型的布局可以帮助您遵循上述规则。

在您的情况下,我建议使用垂直方向的线性布局,例如:

<LinearLayout>
<CustomView/>
<ProgressBar />
</LinearLayout>

所以自定义视图实际上会有点。

因此,您可以为自定义视图扩展具有水平方向的 LinearLayout。有一个名为 weight 的参数,您可以将其设置为其每个子视图,这会将子视图的宽度(在您的情况下)设置为总布局宽度的特定百分比。

于 2012-06-25T08:53:24.090 回答
0

您可以使用 RelativeLayout 来实现您所需要的。通过设置RelativeLayout 的上边距和左边距,您可以让您的子视图在布局中原点(x,y) 处查看algin。

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                                                                        RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.leftMargin = x;
    params.topMargin = y;
    view.setLayoutParams(params);
于 2012-06-25T08:49:26.320 回答