0

アクティビティを開始すると、fill_parent である ImageView が画面に表示されるため、ビューは画面に私の例を表示し、X と Y の値をそれぞれ 600 と 940 にします。

画面の向きを変更すると、高さと幅を取得すると同じ値が返されるようです。

回転すると 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 に答える