Android用户界面设计 - 集成它的最佳方式?

时间:2012-06-25 08:41:21

标签: android user-interface

我需要一些我必须在应用程序中实现的设计建议。这是它应该是什么样的(对不起图像的低分辨率,但这是我现在所拥有的全部)。

User Interface

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

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

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

    因此自定义视图实际上会有点。

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

答案 1 :(得分: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);