【问题标题】:Monodroid Taking Screenshots out of memoryMonodroid 从内存中截取屏幕截图
【发布时间】:2012-10-09 00:09:03
【问题描述】:

因此,我正在尝试创建一个函数,该函数基本上会截取当前应用程序活动的屏幕截图,并在共享之前将其显示在屏幕上,但是当它到达我用来显示的屏幕时,它会耗尽内存开始分享之前的屏幕截图。

// image naming and path  to include sd card  appending name you choose for file
Java.IO.File dir = new Java.IO.File(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures), "ScreenShots");

if (!dir.Exists())
    dir.Mkdirs();

// create bitmap screen capture
Bitmap bitmap;
View v1 = act.RootView;
v1.DrawingCacheEnabled = true;
bitmap = Bitmap.CreateBitmap(v1.DrawingCache);
v1.DrawingCacheEnabled = false;

string date = DateTime.Now.ToString();

date = date.Replace('/', '-');

Java.IO.File _file = new Java.IO.File(dir, from + date + ".png");
try
{
    using (var stream = System.IO.File.Create(_file.AbsolutePath))
    {
        bitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 100, stream);
        stream.Flush();
        stream.Close();
    }
    bitmap.Dispose();
    v1.Dispose();
}
catch (Java.IO.FileNotFoundException e)
{
    // TODO Auto-generated catch block
    e.PrintStackTrace();
}
catch (Java.IO.IOException e)
{
    // TODO Auto-generated catch block
    e.PrintStackTrace();
}

我正在尝试找到一种在不牺牲太多质量的情况下做到这一点的好方法。任何帮助不胜感激=]

更新:我尝试这样做与上述相反,但也没有运气。

View v1 = act.RootView;
v1.DrawingCacheQuality = DrawingCacheQuality.Low;
v1.DrawingCacheEnabled = true;
Bitmap bitmap = Bitmap.CreateScaledBitmap(v1.GetDrawingCache(true),720,1280,false);
v1.DrawingCacheEnabled = false;
v1.DestroyDrawingCache();
v1.Dispose();

【问题讨论】:

    标签: android bitmap xamarin.android screenshot


    【解决方案1】:

    我最终使用了:

    // create bitmap screen capture
    View v1 = act.RootView;
    Bitmap bitmap = Bitmap.CreateBitmap(720,1280,Bitmap.Config.Argb8888);
    Canvas can = new Canvas(bitmap);
    v1.Draw(can);
    

    而不是我更新的代码。这有助于获得我需要的屏幕截图并降低内存使用率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2016-02-22
      • 2014-01-22
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多