1

我知道这个问题经常被问到,但这似乎有所不同。我尝试了 StackOverflow 的 6 种解决方案,但没有成功。我正试图Notification.BigPictureStyle在他们离开应用程序时将某人制作的绘图放入其中。

    public void surfaceCreated(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        _thread.setRunning(true);
        _thread.start();            
        setDrawingCacheEnabled(true);
    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        _thread.setRunning(false);

        measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
                MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        layout(0, 0, getMeasuredWidth(), getMeasuredHeight());

        buildDrawingCache(false);
        Bitmap currentState = Bitmap.createBitmap(getDrawingCache());
        setDrawingCacheEnabled(false);

        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        Intent notificationIntent = new Intent(DrawActivity.this, DrawActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(DrawActivity.this, 0, notificationIntent, Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

        Notification noti = new Notification.BigPictureStyle(
                new Notification.Builder(DrawActivity.this)
                    .setContentTitle("Your drawing")
                    .setContentText("Unfold to see drawing")
                    .setWhen(System.currentTimeMillis())
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentIntent(contentIntent))
        .setSummaryText("Here you can see how you left your drawing.")
        .bigPicture(currentState)
        .build();

        manager.notify(1023, noti);

    }
}

但我总是NullPointerException在这一行得到一个:

Bitmap currentState = Bitmap.createBitmap(getDrawingCache());

此代码来自 StackOverflow,启用了所有这些缓存。有人能看出有什么问题吗?

顺便说一句,我当然使用的是 Android 4.1.1。

4

1 回答 1

0

类似的问题在这里更多信息在这里......

问题似乎是您无法访问surfaceview的内容-显然您可以捕获ImageView的内容...我假设您使用surfaceView并因此遇到相同的问题...如果您愿意进一步挖掘,可能帮助(来自上述线程/主题之一)

如果您不使用表面视图,那么 setLayerType 可能是您的答案......

于 2012-08-27T22:01:12.317 回答