将位图保存到Pictures文件夹(Xamarin Android)

时间:2017-03-18 13:24:42

标签: c# android xamarin bitmap xamarin.android

我有Xamarin Android应用程序。

我尝试像Bitmap一样保存线性布局。这是代码

 public void Save()
    {
        LinearLayout view = FindViewById<LinearLayout>(Resource.Id.badge);

        view.DrawingCacheEnabled = true;
        view.BuildDrawingCache();
        Bitmap layout = view.GetDrawingCache(true);

    }

我需要将其保存到Pictures文件夹。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

他解释了使用c#将位图保存为存储卡中的png的方法。我希望了解你的问题是正确的。

“这是一种简单的方法,只使用C#内容将Bitmap作为PNG文件导出到SD卡”

https://stackoverflow.com/a/29012075/6322661

答案 1 :(得分:0)

您可以使用Canvas通过以下代码绘制View

    public Bitmap createViewBitmap(View v)
    {
        Bitmap bitmap = Bitmap.CreateBitmap(v.Width, v.Height,
                Bitmap.Config.Argb8888);
        Canvas canvas = new Canvas(bitmap);
        v.Draw(canvas);
        return bitmap;
    }

线性布局是一种View。所以你可以创建一个线性布局BitMap:

 View v = FindViewById<LinearLayout>(Resource.Id.myLinearLayout);
 Bitmap myBitMap = createViewBitmap(v);

然后将其保存在DCIM文件夹中:

 public static void saveImage(Bitmap bmp)
 {
      try
      {
          using (var os = new System.IO.FileStream(Android.OS.Environment.ExternalStorageDirectory + "/DCIM/Camera/MikeBitMap2.jpg", System.IO.FileMode.CreateNew))
           {
               bmp.Compress(Bitmap.CompressFormat.Jpeg, 95, os);
           }
       }
       catch (Exception e)
       {

       }
   }

enter image description here

您可以参考我的github获取更多代码信息。