我正在尝试在另一个视图之上添加一个视图。
首先我通过xml设置视图,然后我想以编程方式添加第二个视图。 public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout ll = (LinearLayout) findViewById(R.id.layout);
drawView = new DrawView(this);
drawView.setBackgroundColor(Color.TRANSPARENT);
Bitmap bitmap = Bitmap.createBitmap(10, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawView.draw(canvas);
drawView.setLayoutParams(new LayoutParams(800, 0, 0.18f));
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)drawView.getLayoutParams();
params.setMargins(0, 0, 0, -130);
drawView.setLayoutParams(params);
ll.addView(drawView, 2);
}
我的问题是xml位于我想添加的视图的顶部。
如何将第二个视图放在最上面?
答案 0 :(得分:2)
LinearLayout
是一种布局,可以将其子项一个接一个地垂直或水平排列。如果您想将视图叠加在另一个上面,那么请使用允许该视图的布局,例如RelativeLayout
,而不是LinearLayout
。
答案 1 :(得分:2)
如果要将视图叠加在另一个上,则应使用相对布局。所以在你的情况下,替换"布局"使用相对布局,在java代码中,您可以执行以下操作。
RelativeLayout.LayoutParams baseLayoutParam = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
baseLayout.setLayoutParams(baseLayoutParam);
DrawView drawView = new DrawView(context);
RelativeLayout.LayoutParams rLayoutParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, (int) (250 * Utility.getDip(context)));
rLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); // Adjust accordingly to your requirement
drawView.setLayoutParams(rLayoutParams);ll.addView(drawView);
答案 2 :(得分:0)
您可以调用视图的bringToFront
方法:
drawView.bringToFront();