我需要一些我必须在应用程序中实现的设计建议。这是它应该是什么样的(对不起图像的低分辨率,但这是我现在所拥有的全部)。
所以设计的基本思想是这样的:
我有一个UI组件,在我的情况下,我将使用ProgressBar(红色填充的那个),它将保存有关某种用户数据的信息。例如,如果用户具有歌曲列表,则进度条的最大值将是所有歌曲的计数,并且进度将由正在播放的曲目设置。如果我有56首歌曲并且我正在播放其中的第23首歌曲,则将根据整数来计算进度。进度条上方的点将指示哪些歌曲被我收藏。例如,如果我正在播放第23首歌并且它在我的收藏夹中,那么在同一位置的进度条上方应该有一个点。
所以我的问题是,我应该使用什么UI组件来添加进度条上方的点。我在考虑RelativeLayout/LinearLayout/FrameLayout
,但据我所知,他们没有我可以执行的功能:layout.addView(view, x, y);
其中x
和y
是坐标。或者这是正确的方法吗?也许有更好的方法来做我想要实现的事情。使用SubClass
的其他View
。
欢迎任何形式的帮助/建议/建议!
提前致谢!
答案 0 :(得分:1)
在Android上,完全不建议使用特定值来定义布局布局(除非您使用屏幕测量作为参考)
如果FILL_PARENT和WRAP_CONTENT不起作用,请始终使用DP(密度无关像素)来定义间距和位置。
在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);