3

GooglePlacesAPIから場所のリストを返すアプリケーションがあります。ユーザーが地図上のマーカー(場所を表す)をクリックすると、その場所の詳細を示すダイアログボックスがポップアップ表示されます。その場所の写真(ある場合)も表示したいと思います。

ここからPlacePhotosAPIを知っています:https ://developers.google.com/places/documentation/photos#place_photo_response

Place Details応答からphoto_referenceを取得でき、センサー、maxwidth / maxheight、およびAPIキーとともにPlacePhotosAPIリクエストに渡すことができます。私が抱えている問題は、応答から写真を取得することです。写真オブジェクトをビットマップとして取得して、ダイアログボックスに表示できるようにするにはどうすればよいですか。

4

2 に答える 2

7

数時間の欲求不満の後で解決策を見つけました。

APIからの応答で)を呼び出すことによりgetContentType(、応答が単に特定のタイプの画像であることを識別できました。私の場合、それは「text/jpeg」であることがわかりました。InputStreamを呼び出すことにより、コンテンツのを取得できますgetContent()

BitmapFactoryInputStreamクラスを使用すると、をにデコードできますBitmap

Bitmap photo = BitmapFactory.decodeStream(request.execute().getContent());

この画像を表示するには、最初にのカスタムビューを設定する必要がありましたDialogBuilder

LayoutInflater factory = LayoutInflater.from(mapView.getContext());
final View view = factory.inflate(R.layout.dialog_layout, null);
dialog.setView(view);

次に、写真の応答を取得し、それをImageViewレイアウトのに追加します(これはすでにXMLで定義されています)。

LinearLayout ll = (LinearLayout) view.findViewById(R.id.dialogLayout);
ImageView imageView = (ImageView) ll.findViewById(R.id.placePhoto);
imageView.setImageBitmap(photo);

場所の詳細の応答では、最大10枚の写真が返送される可能性があることに注意してください。「最高の」写真が返送されることを保証することはできません。私の場合、最初のものを取ります。

于 2013-02-13T23:43:05.233 に答える
1

Google Play Services (7.8) の最新リリースには、場所に関連付けられた写真を取得する機能が含まれています。javadoc については、こちらを参照してください。

于 2015-08-14T10:01:29.863 に答える