1

私のアプリケーションでは、画像を消去していますが、画面をキャプチャして保存しているため、消去を元に戻す必要があります.キャプチャ中にコンテンツが消去されていないため、アプリの速度が低下しています.そのために、バックグラウンドでキャプチャしようとしていますが、コンテンツはビットマップでキャプチャしようとしています最終的なイメージでオーバーライドしています。この問題の解決方法を教えてください。

public void getScreen1() {
    // TODO Auto-generated method stub
    File myDir=new File("/sdcard/saved_images");
    myDir.mkdirs();

    String fname = "final-"+ n +".jpg";
    File file = new File (myDir, fname);

    try {
        FileOutputStream ostream = new FileOutputStream(file);

        if(zoomView.getZoom()==1) {
            bitmapArray.compress(CompressFormat.PNG, 100, ostream);
        }
        else if(zoomView.getZoom()!=1) {
            bitmapArray=bitmap;
            bitmapArray.compress(CompressFormat.PNG, 100, ostream);
        }
        ostream.close();
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
    String s="/sdcard/saved_images/"+fname;

    path.add(s);
    n++;
    Log.i("bitmap...111",""+bitmapArray);
}

//非同期タスク(バックグラウンド実行用)

class DownloadFileFromURL_dyn extends AsyncTask<String, String, String> {
    @Override
protected void onPreExecute() {
    super.onPreExecute();
    View content = findViewById(R.id.main_container);
    content.setDrawingCacheEnabled(true);
    bitmapArray= content.getDrawingCache();
    }

    @Override
protected String doInBackground(String... f_url) {
        getScreen1();
        return null;
}

@Override
protected void onProgressUpdate(String... progress) {
    // setting progress percentage
    }

    @Override
protected void onPostExecute(String file_url) {

    }
}

//canvas on touch メソッド

@Override
public boolean onTouchEvent(MotionEvent event) {
    x = (int)event.getX();
    y = (int)event.getY();

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            if(path.size()==0) {
                String params="photo";
            new DownloadFileFromURL_dyn().execute(params);
            }
            touch_start(x, y);
            invalidate();
        break;
        case MotionEvent.ACTION_MOVE:
        touch_move(x, y);
        invalidate();
        break;
    case MotionEvent.ACTION_UP:
        touch_up();

        undo.setEnabled(true);
        String params="photo";
        new DownloadFileFromURL_dyn().execute(params);
        invalidate();
        break;
    }
return true;
}
4

0 に答える 0