我在LinearLayout中有一个ImageView。要更改此ImageView的位置,我使用的是MarginLayoutParams类。以下是代码。
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/sample_frame" >
<ImageView
android:id="@+id/frame1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/box" />
</LinearLayout>
填充代码
MarginLayoutParams mlp = (MarginLayoutParams) frame1.getLayoutParams();
mlp.setMargins(actualFrameX1, actualFrameY1, 0, 0);//all in pixels
frame1.setLayoutParams(mlp);
actualFrameX1是左边距 actualFrameY1是最高保证金 frame1是IMageView
到这里一切都很好但是当我设置&#34; mlp&#34;的宽度和高度时,边距会改变。 如果宽度和高度相同,比如100px和100px,那么它很好但如果宽度和高度不同,比如85px和100px,则边距会发生变化。
MarginLayoutParams mlp = (MarginLayoutParams) frame1.getLayoutParams();
mlp.setMargins(actualFrameX1, actualFrameY1, 0, 0);//all in pixels
mlp.width = 85;
mlp.height = 100;
frame1.setLayoutParams(mlp);
以下是两个截图 - 绿色框的左上角应与白色框的左上角匹配
屏幕截图1 - 宽度和高度相同(100和100)
屏幕截图2 - 宽度和高度不同(85和100)
当我设置mpl.width = 85和mpl.height = 100时,图像的填充会像屏幕截图2中那样改变。但是如果宽度和高度相同,那么填充就像在屏幕截图中一样。为什么paddings会改变?请帮帮我。