java - Android 结合两个 LayoutParams

标签 java android layout layoutparams

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

以下正确设置layout_margin

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);

这样就成功设置了Layout_Width

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 = (RelativeLayout.LayoutParams)progressBar.getLayoutParams();
progressParams.width=finalWidth*2;
progressParams.height= 20;
progressParams.setMargins(0, 0, 0, finalHeight);

progressBar.setLayoutParams(progressParams);

结果是这样的

enter image description here

编辑:也尝试过这个:

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

它创建了这个 enter image description here

最佳答案

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);

关于java - Android 结合两个 LayoutParams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159566/

相关文章:

java - java charAt() 和startsWith() 哪个更快?

java - 有人可以解释一下这个左旋转数组代码是如何工作的吗?

java - 在 Java 中使用正则表达式从字符串中提取值

android - 如何将按钮锚定在android中相对布局的底部

WPF 使用名称删除网格布局子项

java - Q : I can't start Database connection in Eclipse

android - 无尽的 RecyclerView,当走到尽头时重复数据

android - React Native 中的 Picker 和 PickerIOS 错误

android - 无法从 Android 中特定区域的文件夹中读取字符串

html - 为什么小空间不断出现在我的网页中?