0

当我启动一个活动时,它会使用一个为 fill_parent 的 ImageView 填充屏幕,因此该视图将使用我的示例填充屏幕,分别给出 600 和 940 的 X 和 Y 值。

当我更改屏幕的方向时,获取高度和宽度似乎返回相同的值。

我可以拥有它,这样当我旋转时,它会调整 ImageViews 的尺寸吗?

我正在查看 onConfigurationChanged() 到我放置代码的位置,但是当我使用

 DisplayMetrics dm = new DisplayMetrics();
 getManager().getDefaultDisplay().getMetrics(dm);

它将返回全屏尺寸,而不是适用的画布。

我将如何使 ImageView 正确调整自身大小。

相关 XML 数据:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <ImageView
        android:id="@+id/imageViewer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="matrix"
        android:src="@drawable/accept" />
</LinearLayout>

编辑:我可以在方向更改时重新加载活动并通过保存的实例保存数据.....如果我的想法正确,那将完成它,但我不想重新启动活动,因为我真的认为不需要这样做。

4

1 回答 1

0

您可以为此使用 OrientationEventListener,并在处理程序中为方向事件设置您想要的图像高度和宽度,例如,您可以扩展 OrientationEventListener,然后使用:

public abstract void onOrientationChanged (int orientation)

注意:当设备的方向发生变化时,会调用上一个方法。方向参数以度为单位,取值范围为 0 到 359。方向为 0 度,当设备处于自然位置时,90 度,左侧在顶部,180 度,倒置,270 度右侧是顶部。当设备接近平坦且无法确定方向时,返回 ORIENTATION_UNKNOWN。

在那里你可以编辑 ImageView 的高度和宽度。祝你好运:)

于 2012-10-04T20:12:43.430 回答