Java 结合两个布局参数的Android

Java 结合两个布局参数的Android,java,android,layout,layoutparams,Java,Android,Layout,Layoutparams,我正在尝试使用布局参数修复ProgressBar的宽度和边距 以下内容正确设置了布局的页边 int finalHeight = soundcloudImage.getHeight() / 8; int finalWidth = soundcloudImage.getWidth() / 4; RelativeLayout.LayoutParams progressParams = (RelativeLayout.LayoutParams)progressBar.getLayoutParams()

我正在尝试使用布局参数修复ProgressBar的宽度和边距

以下内容正确设置了布局的页边

int finalHeight = soundcloudImage.getHeight() / 8;
int finalWidth = soundcloudImage.getWidth() / 4;

RelativeLayout.LayoutParams progressParams = (RelativeLayout.LayoutParams)progressBar.getLayoutParams();

progressParams.setMargins(0, 0, 0, finalHeight);

progressBar.setLayoutParams(progressParams);
这成功地设置了布局宽度

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(finalWidth*2, 20);

progressBar.setLayoutParams(params);
然而,我似乎无法将这句话结合起来让他们一起工作

下面是布局xml

<RelativeLayout
                android:id="@+id/relativelayout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/soundcloudimage" />

                <TextView
                    android:id="@+id/myImageViewText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/imageView"
                    android:textSize="20dp"
                    android:layout_centerHorizontal="true"
                    android:text=""
                    android:textColor="#EA4F17" />

                <ProgressBar
                    android:id="@+id/progressBar"
                    style="?android:attr/progressBarStyleHorizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/imageView"
                    android:layout_alignLeft="@+id/imageView"
                    android:layout_alignParentRight="true" />

            </RelativeLayout>
结果就是这样

编辑:还尝试了以下操作:

RelativeLayout.LayoutParams progressParams = new RelativeLayout.LayoutParams(finalWidth*2, 20);
progressParams.setMargins(0, 0, 0, finalHeight);    
progressBar.setLayoutParams(progressParams);
这是什么造成的

RelativeLayout.LayoutParams progressParams = (RelativeLayout.LayoutParams)progressBar.getLayoutParams();
progressParams.width=finalWidth*2;
progressParams.height= 20;
progressParams.setMargins(finalWidth, 0, finalWidth, finalHeight);

progressBar.setLayoutParams(progressParams);
编辑

试试这个:

RelativeLayout.LayoutParams progressParams = new RelativeLayout.LayoutParams(finalWidth*2, 20);
progressParams.setMargins(0, 0, 0, finalHeight);    
progressBar.setLayoutParams(progressParams);

宽度不按此方式设置此代码设置了进度条边距,但宽度的作用就好像它的填充父项您的编辑强制宽度起作用,但边距不起作用,将以编辑方式添加图像您也可以发布布局吗?使用getLayoutParam one(第一个)并在布局中删除android:layout\u alignParentRight=“true”
RelativeLayout.LayoutParams progressParams = new RelativeLayout.LayoutParams(finalWidth*2, 20);
progressParams.setMargins(0, 0, 0, finalHeight);    
progressBar.setLayoutParams(progressParams);