Я пытаюсь использовать следующий код для получения растрового изображения, которое берется с камеры. Я использовал эту концепцию, потому что добавляю изображение как водяной знак к снимку. Так что я просто делаю операцию рисованием в виде растрового изображения.
В то время как я делаю это, я получаю следующую ошибку (не удается отправить по ошибке возвращенную растровую карту)
Я хочу отправить это растровое изображение в другое действие.
Как я могу проверить, получаю ли я изображение или нет?
else if(v.equals(findViewById(R.id.ok_button))){
topbar.setVisibility(View.GONE);
menubar.setVisibility(View.GONE);
bottom.setVisibility(View.GONE);
View s = ml.getRootView();
s.setDrawingCacheEnabled(true);
b = s.getDrawingCache();
Log.e("ok","ok");
Intent i=new Intent(CameraActivity.this,Update.class);
i.putExtra("data",b);
startActivity(i);
// s.setDrawingCacheEnabled(false);
// s.setVisibility(View.GONE);
finish();
Спасибо
"немного" поздно, но я столкнулся с проблемой, подобной этой недавно, и кто-то другой с той же проблемой может найти ваш вопрос, так что лучше всего, чтобы там был ответ.
Во-первых, убедитесь, что вы получили желаемое изображение при вызове метода getDrawingCache
. Проверьте этот пост для возможной причины, если вы не получаете изображение.
Во-вторых, убедитесь, что изображение не возвращается. Это может быть не так, как IllegalStateException
, говоря, что вы не можете посылить переработанное растровое изображение, было бы выброшено, и ваше приложение потерпит крах. Если ваше изображение переработано, просто сделайте его копию и поместите копию в Bundle
. В качестве примечания стороны, вызов setDrawingCacheEnabled(false)
вызовет recycle()
.
Третий (и последний), убедитесь, что изображение переходит к другому действию. Ошибки, такие как десериализация неправильных полей или неправильная переменная, очень распространены.
Если все вышеизложенное идет хорошо, и причина вашего происшествия в приведенном выше коде, вы не должны иметь только черный экран. Если вы все еще получаете черный экран, то, скорее всего, ошибка находится в действии Update
, а не в том, что отправляет изображение.
РЕДАКТИРОВАТЬ: Неправильный вопрос.
Вы можете получить исключение, потому что изображение может (не может подтвердить это) быть сериализовано после увольнения. Если это так, просто поместите копию Bitmap
в Intent
вместо самой Bitmap
следующим образом:
i.putExtra("data",b.copy(b.getConfig(), b);