Ошибка на скриншоте (Android) - PullRequest
1 голос
/ 04 ноября 2011

Я использую следующий код, чтобы сделать скриншот TableLayout.Я должен добавить, что тема моего приложения для Android установлена ​​на LIGHT.На экране эмулятора он прекрасно отображается (как и предполагалось) ... однако, как только снимок экрана сделан, изображение оказывается таким ... может кто-нибудь помочь указать, что я делаю здесь?Спасибо!

private void getScreen()
            {
                View content = findViewById(R.id.TransactionLog);
                content.setDrawingCacheEnabled(true);

                content.buildDrawingCache(true);

                Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());


                content.setDrawingCacheEnabled(false); // clear drawing cache

                File file = new File(Environment.getExternalStorageDirectory() + 
                         File.separator + "logDetails.jpeg");




                        try 
                            {
                                file.createNewFile();
                                FileOutputStream ostream = new FileOutputStream(file);
                                bitmap.compress(CompressFormat.JPEG, 100, ostream);

                                ostream.flush();
                                ostream.close();

                            } 
                        catch (Exception e) 
                            {
                                e.printStackTrace();
                            }

                        if (!file.exists()) {
                            sendmail();
                        }
            }

The background shows black

1 Ответ

2 голосов
/ 04 ноября 2011

1) вы должны использовать PNG.Jpeg для фотографий (в основном).

2), потому что вы используете Jpeg, я предполагаю, что эти черные области были бы прозрачнымиPNG поддерживает прозрачность.JPEG не делает.Я не пробовал drawCache, так что, возможно, он также не поддерживает прозрачность, и я совершенно не прав, но я думаю, что это так.

...