2016-10-12 25 views
0

Ich habe ein Bild namens graph.jpg im Drawable-Ordner, und ich möchte es jedes Mal mit einem bestimmten Bild füllen, wenn ich es von einem Server herunterlade. Dazu benutzte ich Retrofit, und ich habe bereits die folgende Schnittstelle:Wie können Sie den Inhalt einer Bilddatei in Android ändern?

@GET("/androidimage/") 
    Call<ResponseBody> getImage(
      @Query("image") String command 
    ); 

Und die folgende Methode in der Aktivität:

private void getImage(WebService webService, String command){ 
     Call<ResponseBody> call = webService.getImage(command); 
     call.enqueue(new Callback<ResponseBody>() { 

      @Override 
      public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 
       if (response.isSuccessful()){ 
        if (response.body() != null){ 
         Bitmap bm = BitmapFactory.decodeStream(response.body().byteStream()); 
         imageViewTouch.setImageBitmap(bm); 
        } 
        else { 
         imageViewTouch.setImageResource(R.drawable.graph); 
        } 
       } 
      } 

      @Override 
      public void onFailure(Call<ResponseBody> call, Throwable t) { 
       System.out.println("LOG Error: " + t.getMessage()); 
      } 
     }); 
    } 

ich meine graph.jpg Datei wollen die meisten geändert werden kürzlich bm, konvertiert zu JPG. Wie kann das gemacht werden?

Dank @Alex Klimashevsky die Antwort, konnte ich dies mit der Picasso-Bibliothek tun, und es ist viel einfacher.

+0

Sie müssen es irgendwo anders im Dateisystem speichern. Die Android-Ressourcen sind schreibgeschützt. – Henry

Antwort

0

Verwenden Sie Picasso Bibliothek dafür.

Diese Bibliothek verfügt über Caching-Mechanismus von der Box.

Auch können Sie Bilder von /drawable Ordner nicht ersetzen.

+0

Okay, danke, ich werde es versuchen. –

Verwandte Themen