2014-09-02 84 views
1

我在视图中为代码添加了两个元素。一个imageView和一个纺纱轮。显示的两个元素,但在相同的地方。我希望将ImageView放在屏幕中央的另一个元素上方。Android:以编程方式将两个元素放置在relativeLayout的中心

是添加视图的代码:

RelativeLayout container= (RelativeLayout)findViewById(R.id.container); 

    RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    position.addRule(RelativeLayout.CENTER_IN_PARENT); 
    imgCenter.setLayoutParams(position); 
    container.addView(imgCenter); 

    RelativeLayout.LayoutParams position2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    position2.addRule(RelativeLayout.CENTER_IN_PARENT); 
    position2.addRule(RelativeLayout.BELOW,imgCenter.getId()); 
    spinner.setLayoutParams(position2); 
    container.addView(spinner); 

的RelativeLayout的XML:在父母

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.app.exemple.LoadingActivity" 
android:id="@+id/container" > 

+0

你的意思是一个人应该比其他被覆盖或者他们应该在一条垂直线上进行布局? – 2014-09-02 12:16:29

+0

尝试删除此行:position2.addRule(RelativeLayout.CENTER_IN_PARENT); – 2014-09-02 12:19:33

+1

如果您将LinearLayout与重力“中心”用作父布局而不是RelativeLayout,那么您不需要提供任何规则等,直接按顺序添加图像和微调器。 – 2014-09-02 12:23:23

回答

0

感谢@HareshChhelana我找到了解决方案。 我更改XML如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.app.exemple.LoadingActivity" 
android:id="@+id/container" 
android:orientation="vertical" 
android:gravity="center" > 

,代码:

LinearLayout container= (LinearLayout)findViewById(R.id.container); 
    ProgressBar spinner = new ProgressBar(this,null,android.R.attr.progressBarStyleLarge); 
    container.addView(imgCenter); 
    container.addView(spinner); 
0

卸下中心的第二个孩子

RelativeLayout container= (RelativeLayout)findViewById(R.id.container); 

RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
position.addRule(RelativeLayout.CENTER_IN_PARENT); 
imgCenter.setLayoutParams(position); 
container.addView(imgCenter); 

RelativeLayout.LayoutParams position2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
position2.addRule(RelativeLayout.BELOW,imgCenter.getId()); 
spinner.setLayoutParams(position2); 
container.addView(spinner); 
相关问题