2011-03-29 5 views
2

Quel est le C# équivalent de Java suivant snippet ci-dessous:Android Java à C# URL

Drawable image; 
URL imageUrl; 

imageUrl = new URL(getMyImageUrl(imageNumber)); 
Bitmap bitmap = BitmapFactory.decodeStream(imageUrl.openStream()); 
image = new BitmapDrawable(bitmap); 

Merci à l'avance.

Répondre

3

Une conversion plus littérale C# serait:

var imageUrl = new Java.Net.URL(GetMyImageUrl(imageNumber)); 
var bitmap = Android.Graphics.BitmapFactory.DecodeStream (imageUrl.OpenStream()); 
var image = new Android.Graphics.Drawables.BitmapDrawable (bitmap); 

Ceci est l'une des forces de Mono pour Android: les classes et méthodes miroir la plate-forme Java sous-jacente (à quelques exceptions près) tout en offrant une grande partie de la Framework .NET, donc la migration du code de Java vers C# devrait être raisonnablement simple.

1
using System.Drawing; 
    using System.Drawing.Imaging; 

    public Bitmap DownloadImage(string imageUrl) 
    { 
     try 
     { 
       WebClient client = new WebClient(); 

       using(Stream stream = client.OpenRead(imageUrl)) 
       { 
        Bitmap bitmap = new Bitmap(stream); 
       } 
     } 
     catch(Exception) 
     { 
       //todo: handle me 
       throw; 
     } 

     return bitmap 
    } 
+0

Vraiment? Ce n'est pas un C# valide. Suggérerait une instruction 'using' pour le Stream, perdant les mots-clés' private' et incluant l'appel à 'getMyImageUrl' dans la question. Juste essayer d'être utile –

+0

'Close()' vider les tampons au flux aussi ... – Cipi

+0

@Kieren quel est le problème? – mcabral

0

Jetez un oeil à http://www.dreamincode.net/code/snippet2555.htm. J'ai supposé que vous voudriez utiliser Bitmap. Je n'ai jamais utilisé Drawable en Java, alors corrigez-moi si je me trompe.

+0

Drawable est une chose spécifique à Android. –

+0

Ok mais Bitmap serait l'équivalent, ou étais-je si loin? –