上部に水平スクロール、下部にテキストボックスがあり、真ん中に残っているスペースがあれば、ImageView で埋めるレイアウトがあります。その ImageView にビットマップをロードします。この ImageView を一番下のものと呼びましょう。
次に、その ImageView の上に、ユーザーがドラッグして移動できる別の ImageView を動的に読み込みます。2 番目の ImageView (一番上のもの) には小さなアイコンがあり、ビットマップの上に重ねて保存されます。ロゴ/透かしと考えてください。
両方の ImageView が RelativeLayout にあるため、上部のレイアウトを移動できます。
今私が抱えている問題は、下部のImageView にロードされているビットマップのサイズを取得できないことです。
私は次のことを試しました:
DisplayMetrics om = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(om);
tv.setText("W:" + b.getScaledWidth(om) + " H:" + b.getScaledHeight(om));
しかし、それは機能しません。b.getScaledWidth(om)は、画面上のビットマップではなく、ビットマップの実際の幅を返します。これは、(横長の画像の場合) 480px、電話の画面のサイズです。テスト中。
追加情報: これが必要な理由は、一番下の ImageView に表示する画像が ImageView と同じ比率ではないためです。したがって、ImageView のサイズを取得できますが、この ImageView は画像自体よりも大きくなります。下部の ImageView に表示される画像の境界内に上部の ImageView を保持する必要があるため、下部のビュー自体のサイズではなく、下部の ImageView の画像のサイズを知る必要があります。
私が間違っていることは何ですか?