установка неизменяемого растрового изображения дает ошибки? - PullRequest
0 голосов
/ 23 марта 2012

Я изучаю графику. Камера.и я сделал снимок камерой, и когда я установил

снятый снимок «растровое изображение» в качестве холста, приложение вылетает, и logcat говорит «растровое изображение

изображение является неизменным».на самом деле, я не знаю, что это значит?Любое предложение?

заранее спасибо.

Код

OnClickListener btn01Listener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent CameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(CameraIntent, CAMERA_PIC_REQUEST);           
    }
};

Защищено void onActivityResult (int requestCode, int resultCode, Intent data) {

    if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {
           image = (Bitmap) data.getExtras().get("data");
           ImageView img01 = (ImageView) findViewById(R.id.img01);
           //img01.setImageBitmap(image);

           c = new Camera();
           can = new Canvas();
           can.setBitmap(Bitmap.createBitmap(image));
        }
}

LogCaat:

03-23 20:46:16.188: E/AndroidRuntime(452): FATAL EXCEPTION: main

03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): java.lang.RuntimeException: Невозможно возобновить активность {com.androidbook.Camera3DDemo / com.androidbook.Camera3DDemo.Camera3DDemoActivity}: java.lang.RuntimeException: сбой при доставке результата ResultInfo {who = null, request = 0, result = -1, data = Intent {act = inline-data (имеет дополнительные данные)}}к активности {com.androidbook.Camera3DDemo / com.androidbook.Camera3DDemo.Camera3DDemoActivity}: java.lang.IllegalStateException 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): в android.app.ActivityThread.performResA.Java: 2120) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:2135) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1668) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:2832) 03-23 ​​20: 46: 16.188: E /AndroidRuntime (452): на android.app.ActivityThread.access $ 1600 (ActivityThread.java:117) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на android.app.ActivityThread $ H.handleMessage (ActivityThread.Java: 935: 03-23. 20: 46: 16.188: E / AndroidRuntime (452): на android.os.Handler.dispatchMessage (Handler.java:99) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): at android.os.Looper.loop (Looper.java:130) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): at android.app.ActivityThread.main (ActivityThread.java:3683) 03-2320: 46: 16.188: E / AndroidRuntime (452): на java.lang.reflect.Method.invokeNative (собственный метод) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на java.lang.reflect.Method.invoke (Method.java:507) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 03-2320:46:16.188: E / AndroidRuntime (452): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): на dalvik.system.NativeStart.main (собственный метод) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): вызвано: java.lang.RuntimeException: ошибка доставки результата ResultInfo {who = null, request = 0, result = -1, data= Intent {act = inline-data (имеет дополнительные данные)}} к активности {com.androidbook.Camera3DDemo / com.androidbook.Camera3DDemo.Camera3DDemoActivity}: java.lang.IllegalStateException 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): в android.app.ActivityThread.deliverResults (ActivityThread.java:2532) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): в android.app.ActivityThread.performResumeActivity (ActivityThread.java:2107) 03-23 20: 46: 16.188: E / AndroidRuntime (452): ... 13 еще 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): причина: java.lang.IllegalStateException 03-23 ​​20:46: 16.188: E / AndroidRuntime (452): на android.graphics.Canvas.setBitmap (Canvas.java:144) 03-23 ​​20: 46: 16.188:E / AndroidRuntime (452): в com.androidbook.Camera3DDemo.Camera3DDemoActivity.onActivityResult (Camera3DDemoActivity.java:43) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): в android.app.Activity.dispatchActivity.java: 3908) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): at android.app.ActivityThread.deliverResults (ActivityThread.java:2528) 03-23 ​​20: 46: 16.188: E / AndroidRuntime (452): ... еще 14

1 Ответ

1 голос
/ 23 марта 2012

На самом деле это означает, что у вас нет прав на изменение растрового изображения. Поэтому вам нужно будет создать изменяемую копию предоставленного растрового изображения, которое можно использовать для рисования на холсте и т. Д.

Вы можете сделать это, используя этот метод:

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