2017-04-16 2 views
1
String photoReference = imageDataObject.getPhotoReference(); 
      String width = imageDataObject.getWidth(); 
      String height = imageDataObject.getHeight(); 
      ApiInterface apiServicePhoto = ApiClient.getClient(GlobalConstant.BASE_URL_PHOTO).create(ApiInterface.class); 
      Call<ResponseBody> callPhoto = apiServicePhoto.getSinglePhoto(GlobalConstant.MAX_WIDTH_IMAGE, photoReference, GlobalConstant.API_KEY); 
      callPhoto.enqueue(new Callback<ResponseBody>() { 
       @Override 
       public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 
        Log.e(TAG, "onResponse: " + response); 
        if (response.isSuccessful()) { 
         if (response.body() != null) { 
          Log.e(TAG, "onResponse: "); 
         } 
         Log.e(TAG, "onResponse: " + response.body()); 
        } 
       } 

       @Override 
       public void onFailure(Call<ResponseBody> call, Throwable t) { 
        Log.e(TAG, "onFailure: "); 
       } 
      }); 

// API-SchnittstelleFetch Foto in Körperantwort Retrofit-Bibliothek mit Hilfe von Foto-Referenz und Schlüssel

@GET("photo") 
    Call<ResponseBody> getSinglePhoto(@Query("maxwidth") Integer maxwidth, @Query("photoreference") String photoreference, @Query("key") String key); 

// API Client

public class ApiClient { 
    private static Retrofit retrofit = null; 
    public static Retrofit getClient(String baseUrlRestro) { 
     if (retrofit == null) { 
      retrofit = new Retrofit.Builder() 
        .baseUrl(baseUrlRestro) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .build(); 
     } 
     return retrofit; 
    } 

// Basis-URL

public static final String BASE_URL_PHOTO = "https://maps.googleapis.com/maps/api/place/"; 

Ich bin tryin g diesen Code, aber ich kann nichts in Antwort Körper bekommen. Körper immer null. Gibt es eine Möglichkeit, ein Foto mit einem Foto-Verweis zu erhalten?

Vielen Dank im Voraus

+0

Stellen Sie sicher, dass die Stellen-API in der Entwicklerkonsole aktiviert ist. oder verwenden Sie Glide/Picasso zum Herunterladen von Bildern –

+0

@MuraliPrajapati Ja, Place-API ist in der Entwicklerkonsole aktiviert. Ich benutze Picasso zum Herunterladen. Der Antworttext enthielt jedoch einen Nullwert. Wenn Sie einen Beispielcode bekommen, dann auch gut. Danke!! –

+0

Ich habe versucht, diese API im Postboten es funktioniert gut dort. Verwende die von Google gegebene Photoreferenz hier: https: //developers.google.com/places/web-service/photos –

Antwort

1

Als Glide für Sie arbeitet gut ich hier den Code veröffentlichen.

ImageView ivPhoto = (ImageView) findViewById(R.id.ivPhoto); 
String url = "https://maps.googleapis.com/maps/api/place/photo" + 
    "?maxwidth=400" + 
    "&photoreference=CnRtAAAATLZNl354RwP_9UKbQ_5Psy40texXePv4oAlgP4qNEkdIrkyse7rPXYGd9D_Uj1rVsQdWT4oRz4QrYAJNpFX7rzqqMlZw2h2E2y5IKMUZ7ouD_SlcHxYq1yL4KbKUv3qtWgTK0A6QbGh87GB3sscrHRIQiG2RrmU_jF4tENr9wGS_YxoUSSDrYjWmrNfeEHSGSc3FyhNLlBU" + 
    "&key=AIzaSyAfDHQhe4fmz5FAitOnTjrOFPesb88GXFE"; 

Glide.with(this) 
    .load(url) 
    .into(ivPhoto);