0

Google Maps Static API から静的マップをダウンロードします。ブラウザで画像をダウンロードすると、サイズは問題ありません(728x224)。下記URLよりご確認いただけます。

しかし、Android アプリで表示しようとすると、小さすぎます (540x166)。もちろん、「centerCrop」で表示することもできますが、理想的な解決策ではありません。私の知る限り、両方のサイズはピクセル単位であるため、完全に収まるはずです。私はこのように記録します:

 Log.i(TAG, "view size: "+mapPicture.getWidth()+"/"+mapPicture.getHeight());
 Log.i(TAG, "pic size: "+mapPicture.getDrawable().getIntrinsicWidth()+"/"+mapPicture.getDrawable().getIntrinsicHeight());

logcat は次のようになります。

11-29 21:41:37.547: I/DetailsFragment(18064): view size: 728/224
11-29 21:41:37.547: I/DetailsFragment(18064): http://maps.google.com/maps/api/staticmap?center=0,0&zoom=3&size=364x112&scale=2&sensor=false
11-29 21:41:37.547: I/DetailsFragment(18064): pic size: 540/166

ImageManagerでイメージをダウンロードし、hdpi デバイスでテストします。

では、ダウンロードした写真のサイズが本来のサイズと異なるのはなぜですか?

編集: 2倍の大きさの画像をダウンロードすると、内部のドローアブルImageViewは以前とほぼ同じサイズになります:pic size: 540/189

http://maps.google.com/maps/api/staticmap?center=52.2396,21.0174&zoom=14&size=729x225&scale=2&sensor=false

4

1 に答える 1

1

ここから読んだ?

: JELLY_BEANより前は、ここで渡されたリソース ID が別の Drawable リソースのエイリアスである場合、この関数は最終的な構成密度を正しく取得しませんでした。これは、エイリアス リソースの密度構成が実際のリソースと異なる場合、返される Drawable の密度が正しくなく、スケーリングが不適切になることを意味します。これを回避するには、代わりに TypedArray.getDrawable を介して Drawable を取得できます。対象のリソース ID を含む配列で Context.obtainStyledAttributes を使用して、TypedArray を作成します。

于 2012-11-29T21:11:44.707 に答える