снимок экрана, но создает пустой файл: Android? - PullRequest
0 голосов
/ 21 июня 2011

Я работаю на Android. У меня есть следующий код, чтобы сделать снимок экрана.

Настройка макета Root:

View content = findViewById(R.id.layoutroot);
content.setDrawingCacheEnabled(true);

Функция для получения визуализированного вида:

private void getScreen()
{
    View content = findViewById(R.id.layoutroot);
    Bitmap bitmap = content.getDrawingCache();
    File file = new File("/sdcard/test.png");
    try 
    {
        file.createNewFile();
        FileOutputStream ostream = new FileOutputStream(file);
        bitmap.compress(CompressFormat.PNG, 100, ostream);
        ostream.close();
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
}

Моя проблема в том, что он создает файл нулевого КБ. в чем может быть проблема?

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Вы не записали данные в файл.вы непосредственно закрываете файл, поэтому вы получили файл с 0 кб

и используйте что-то вроде этого

try 
    {
        file.createNewFile();
        FileOutputStream ostream = new FileOutputStream(file);
        byte[] mydata = null;//data in byte array
        ostream.write(mydata);
        ostream.close();
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }
0 голосов
/ 21 июня 2011

выполните эти изменения и попробуйте снова:

  • сделать переменную содержимого финальной и вызвать findViewById для макета операции

    final Просмотр содержимого = somelayout.findViewById (R.id.layoutroot);

...