Java Android:缩放和大小更改后的对齐方式

Java Android:缩放和大小更改后的对齐方式,java,android,xml,android-layout,resize,Java,Android,Xml,Android Layout,Resize,我有一个通过ViewTreeObserver根据布局尺寸定义其宽度和高度的视图。我还有另外两个图像视图包装在RelativeLayouts中。 我需要这两个图像与第一个视图的顶部和底部对齐。它们确实如此,但使用的是旧的视图尺寸,而不是正确的尺寸:因此,当中心变小时,视图之间存在间隙 以下是我的意思: 以及守则: @Override public void onGlobalLayout() { layoutWidth = layout.getWidth(); \\ main layo

我有一个通过ViewTreeObserver根据布局尺寸定义其宽度和高度的视图。我还有另外两个图像视图包装在RelativeLayouts中。 我需要这两个图像与第一个视图的顶部和底部对齐。它们确实如此,但使用的是旧的视图尺寸,而不是正确的尺寸:因此,当中心变小时,视图之间存在间隙

以下是我的意思:

以及守则:

 @Override
public void onGlobalLayout() {
    layoutWidth = layout.getWidth();  \\ main layout
    layoutHeight = layout.getHeight();
    LayoutParams params = arrows.getLayoutParams();
    params.width = layoutHeight/3;
    params.height = layoutHeight/3;
    arrows.setLayoutParams(params);
    LayoutParams paramseyes = eyes.getLayoutParams();
    paramseyes.width = layoutHeight/4;
    eyes.setLayoutParams(paramseyes);
    mouth.setLayoutParams(paramseyes);

    /*
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams
    (paramseyes);
    lp.addRule(RelativeLayout.ABOVE, R.id.arrows);
    eyes.setLayoutParams(lp);   ... nah, it didnt work
    */      

    removeOnGlobalLayoutListener(arrows, this);
}
XML:

<ee.st.running.arrowwidgt
    android1:id="@+id/arrows"
    android1:layout_width="wrap_content"
    android1:layout_height="wrap_content"
    android1:layout_centerInParent="true"
    android:dial="@drawable/hourglass1"
    android:hand_hour="@drawable/hours"
    android:hand_minute="@drawable/minuts"
    android:scaleType="fitXY"
    android1:src="@drawable/hourglass1" />

<RelativeLayout
    android1:id="@+id/eyes"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android1:layout_above="@id/arrows" >

<ImageView
    android1:layout_width="wrap_content"
    android1:layout_height="wrap_content"
    android1:layout_centerInParent="true"
    android1:src="@drawable/eyes" />

</RelativeLayout>

 <RelativeLayout
    android1:id="@+id/mouthset"
    android:layout_width = "wrap_content" 
    android:layout_height = "wrap_content"
    android1:layout_below="@id/arrows"
    android:layout_centerHorizontal="true"
    >
<ImageView

    android1:layout_width="wrap_content"
    android1:layout_height="wrap_content"
    android1:layout_centerHorizontal="true"
    android1:src="@drawable/mouth"
     />
   </RelativeLayout>
这个箭头视图对于多屏幕支持来说是很大的,我只是稍后将其缩放到一定的大小

我终于明白了原因。 当我改变布局宽度时,它相应地缩放了图像。但它并没有改变布局高度

我应该 paramseyes.height=

在我的情况下是8/8

这样,问题就解决了