Сохранить вид поверхности на холст - PullRequest
1 голос
/ 16 августа 2011

Я пытаюсь сохранить скриншот моего приложения. Мой главный экран - SurfaceView, я создаю новый холст и рисую вид поверхности на холст. У меня проблема, потому что PNG, который я получаю, полностью прозрачен.

Вот мой код

Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(image);
    draw(c);

    String path=Environment.getExternalStorageDirectory() + "/test2.png";
    File file = new File(path);
    try 
    {
        file.createNewFile();
        FileOutputStream ostream = new FileOutputStream(file);
        image.compress(CompressFormat.PNG, 100, ostream);
        ostream.close();
        Uri screenshotUri = Uri.parse("file://"+file.getAbsolutePath());
        Intent sendIntent = new Intent(Intent.ACTION_VIEW);
        sendIntent.setDataAndType(screenshotUri, "image/png");
       startActivity(sendIntent);
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }

1 Ответ

0 голосов
/ 16 августа 2011

Я думаю, что вы должны убедиться, что поверхность была полностью создана, выполнив это

http://www.edu4java.com/androidgame/androidgame3.html

Попробуйте сделать снимок экрана в методе onSurfaceCreated, иначе вы получите пустое место, пока поверхность не будет существовать. В документации сказано, что draw () ничего не вернет, пока не будет отображен полный макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...