2011-03-29 18 views
2

什麼是C#相當於下面的Java的代碼片段:提前的Android的Java與C#URL下面

Drawable image; 
URL imageUrl; 

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

感謝。

回答

3

更文字轉換到C#將是:

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

這是單聲道的Android的優勢之一:類和方法鏡底層Java平臺(有一些例外),同時提供多的.NET框架,因此將代碼從Java遷移到C#應該是相當簡單的。

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

真的嗎?這不是有效的C#。會爲Stream推薦一個'using'語句,丟失'private'關鍵字並在問題中包含對'getMyImageUrl'的調用。只是試圖幫助 – 2011-03-29 12:41:20

+0

'Close()'將緩衝區刷新到流中... – Cipi 2011-03-29 12:41:22

+0

@Kieren最新的問題是什麼? – mcabral 2011-03-29 12:42:28

0

看看http://www.dreamincode.net/code/snippet2555.htm。我以爲你會想使用位圖。我從來沒有在Java中使用Drawable,所以如果我錯了,請糾正我。

+0

Drawable是android特有的東西。 – 2011-03-29 13:13:58

+0

好吧,但將位圖是等價的,還是我那麼遠? – 2011-03-29 13:15:35