我必须设计一个页面,页面的顶部应该有按钮,textview等。页面的第二部分有一个View可以使一些动画球在上部按钮点击时移动..
我应该使用相对布局吗?或表面视图?
我不知道该如何继续..有人可以帮忙......?
答案 0 :(得分:0)
您最好的选择是使用两个子视图定义布局,一个是自我实现的SurfaceView
类,另一个是RelativeLayout
或LinearLayout
,以适合您的需求为准更好。请查看下面的这个小示例,了解如何创建一个布局,其底部附加RelativeLayout
,顶部附加SurfaceView
。
public void setupContentView() {
RelativeLayout layout = new RelativeLayout(this);
MySurfaceView mySurfaceView = new MySurfaceView(this);
RelativeLayout xmlLayout = (Relativelayout) View.inflate(this,
R.layout.my_xml_file, null);
int xmlId = 0x1234;
xmlLayout.setId(xmlId);
RelativeLayout.LayoutParams xmlParams= new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
xmlParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
xmlParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
RelativeLayout.LayoutParams surfaceViewParams= new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
surfaceViewParams.addRule(RelativeLayout.BELOW, xmlId);
surfaceViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layout.addView(xmlLayout, xmlParams);
layout.addView(mySurfaceView, surfaceViewParams);
setContentView(layout);
}
这将创建一个从名为my_xml_file
的xml文件中膨胀的布局,名称为xmlLayout
。它还会创建一个名为SurfaceView
的自我实现的MySurfaceView
类,它称之为mySurfaceView
。然后,它使用RelativeLayout.LayoutParams
类将参数设置为两个布局。它将mySurfaceView
设置为xmlLayout
以下,并且两个高度都设置为WRAP_CONTENT
,如果xml高度= 0则会使mySurfaceView
占据整个屏幕,反之亦然。然后你可以在MySurfaceView
类中绘制,但是你可以正常绘制,并且可以设置你想要的xml文件。
祝你好运!很想听听任何成功。