2013-01-04 116 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);