0

私は、起動時にWebから画像をダウンロードしてメインアクティビティに表示するアプリに取り組んでいます。

私が心配しているのは、画面密度が異なるデバイスでこの画像が持つサイズです。

: 400x200 ピクセルの画像をダウンロードするとします。Galaxy S (解像度 480x800) と Galaxy S3 (解像度 1280x720) の両方で 400x200 で表示されますか、それとも Galaxy S3 ではより大きなサイズにサイズ変更されますか?

これがどのように機能するか、およびダウンロードした画像を操作するときにさまざまな画面と互換性を保つ方法についてのヒントはありますか?

どうもありがとう。

4

2 に答える 2

1

ウェブサイトが要求された画像に異なる解像度を提供するためにいくつかの凝ったユーザーエージェントの切り替えを行わない限り、画像ファイルはネットワーク上で同じである必要があります。ただし、画像を表示すると、画面に合わせてサイズが変更されます(たとえば、ImageViewで拡大縮小する場合)。デバイス間でメモリの制限が異なるため、取得した画像がダウンサンプリングされていない場合、表示時にメモリ不足エラーが発生する可能性があります(ファイルサイズは同じままですが、ここで問題となるのはメモリ内のサイズだけです)。

于 2012-07-30T17:13:20.720 に答える
1

ImageView に画像を表示していると仮定すると、次の 2 つの点に注意する必要があります。

ImageView の layout_width/layout_height および scaleType 設定。

Android は、これらの設定に従ってアップスケーリング/ダウンスケーリングを処理します。

必要に応じて、幅/高さを動的に調整できます。次のようなコードを使用します。

// banner image layout adjustment
LayoutParams lp = mImageView.getLayoutParams();
lp.width = mImageView.getDrawable().getIntrinsicWidth() ;
lp.height = mImageView.getDrawable().getIntrinsicHeight() ;
mImageView.setLayoutParams(lp);

ただし、このビューを事前に定義された境界内に保つように注意してください。たとえば、デバイスの画面の幅/高さです。

于 2012-07-30T17:32:45.710 に答える