我有Xamarin Android应用程序。
我尝试像Bitmap一样保存线性布局。这是代码
public void Save()
{
LinearLayout view = FindViewById<LinearLayout>(Resource.Id.badge);
view.DrawingCacheEnabled = true;
view.BuildDrawingCache();
Bitmap layout = view.GetDrawingCache(true);
}
我需要将其保存到Pictures文件夹。我怎么能这样做?
答案 0 :(得分:0)
他解释了使用c#将位图保存为存储卡中的png的方法。我希望了解你的问题是正确的。
“这是一种简单的方法,只使用C#内容将Bitmap作为PNG文件导出到SD卡”
答案 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)
{
}
}
您可以参考我的github获取更多代码信息。