Как загрузить изображение PNG на SDCard на холст для рисования в Android? - PullRequest
1 голос
/ 24 августа 2011

Мое приложение - базовое приложение для рисования. Пользователь может рисовать на холсте и сохранять изображение в формате PNG. Он может загружать ранее нарисованные изображения и редактировать их.

Я смог сделать первую часть. пользователь может нарисовать и сохранить изображение на SD-карте. У меня проблемы с загрузкой сохраненного файла png на холст и рисованием на нем.

вот метод run в моем классе SurfaceView.

public void run() {
            Canvas canvas = null;
            while (running) {
                try {
                    canvas = holder.lockCanvas(null);
                    synchronized (holder) {
                        if(mBitmap == null){
                            mBitmap =  Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);;
                        }
                        final Canvas c = new Canvas (mBitmap);
                        c.drawColor(Color.WHITE);

                        //pad.onDraw(canvas);

                        Paint p = new Paint();
                        p.setColor(Color.GRAY);

                        for(double x = 0.5;x < c.getWidth();x += 30) {
                            c.drawLine((float)x, 0, (float)x, c.getHeight(), p);
                        }

                        for(double y= 0.5;y < c.getHeight();y += 30) {
                            c.drawLine(0, (float)y, c.getWidth(), (float)y, p);
                        }

                        pad.onDraw(c);

                        canvas.drawBitmap (mBitmap, 0,  0, null);
                    }
                } finally {
                    if (canvas != null) {
                        holder.unlockCanvasAndPost(canvas);
                    }
                }
            }
        }

Я попытался загрузить png в mBitmap, но это не сработало. Любая помощь приветствуется.

спасибо!

1 Ответ

4 голосов
/ 24 августа 2011

В вашем коде вы вообще не загружаете изображение с SD-карты, это намеренно?Вот как вы открываете изображение с SD-карты:

mBitmap = BitmapFactory.decodeFile("/sdcard/test.png");
...