2013-01-04 110 views
0

我希望在設置圖像前設置樣本大小,然後將其設置爲imageview。問題是,如果我直接將圖像設置爲imageview,那麼我的應用程序會崩潰。 (因爲需要太多的記憶!?)Monodroid:從資源中設置imageview圖像或資源/繪圖來配置SampleSize

這裏是我的代碼:

ImageView iv = FindViewById<ImageView>(Resource.Id.imagePusher); 
Android.Graphics.BitmapFactory.Options options = new Android.Graphics.BitmapFactory.Options(); 
options.InSampleSize = 2; 

Android.Graphics.Bitmap bMap = Android.Graphics.BitmapFactory.DecodeFile("the_path_I_want_to_know/image.jpg", options); 

iv.SetImageBitmap(bMap); 
+0

我不能說我對monodroid非常熟練,但它不像MT。您需要使用'Asset.Open'來獲取文件流,並將生成操作更改爲AndroidAsset,以便直接訪問您的案例中圖像的文件流。 – Candide

+0

是的,我知道Asset.Open方法,但知道如何使用文件流設置樣本大小,因爲BitmapFactory.DecodeFile方法只接受文件路徑 – anguish

+0

在之前的項目中,我使用了「BitmapFactory.DecodeStream」。 – Candide

回答

0

謝謝你老實人的幫助,現在它與下面的代碼工作:

ImageView iv = FindViewById<ImageView>(Resource.Id.imagePusher); 

Android.Graphics.BitmapFactory.Options options = new Android.Graphics.BitmapFactory.Options(); 
options.InSampleSize = 2; 

Stream bitmap = Assets.Open("myimage.jpg"); 

Android.Graphics.Bitmap bMap = Android.Graphics.BitmapFactory.DecodeStream(bitmap, null, options); 


iv.SetImageBitmap(bMap);