Android : Bitmap : so speichern Sie die Leinwand mit dem grünen hintergrund in android?

Ich bin mit Bitmap für die Erstellung der digitalen Signatur mit Bild. Während die Speicherung der Unterschrift auf dem Gerät nur die Signatur gespeichert habe mit schwarzem hintergrund. Ich will grüne hintergrund mit Unterschrift.

Hier ist mein Bitmap-code

 //Bitmap View
public class MyView extends View implements OnClickListener
{
    public int height;
    public int width;       
    private Bitmap  mBitmap;        
    private Path    mPath;
    private Paint   mBitmapPaint; 

    public MyView(Context c) 
    {
        super(c);
        mPath = new Path();
        mBitmapPaint = new Paint(Paint.DITHER_FLAG);   
    } 

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) 
    {
        super.onSizeChanged(w, h, oldw, oldh);  
        Wid = w;
        Ht = h; 
        mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);            
        mCanvas = new Canvas(mBitmap);       

    }

    @Override
    protected void onDraw(final Canvas canvas)
    { 

        canvas.drawColor(0xFFFFFFFF);       
        canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
        canvas.drawPath(mPath, mPaint); 

        //onclick listner for SAVE button
        saveButton.setOnClickListener(new OnClickListener() {  
            public void onClick(View v) { 
                //capture the image  
                try {                    
                    saveAsJpg(mBitmap);     
                    startActivity(new Intent(Paint.this, SignatureActivity.class));
                    finish();
                } catch (IOException e) {                   
                    e.printStackTrace();
                } 
            }  
        });             
    }

    private float mX, mY;
    private static final float TOUCH_TOLERANCE = 4; 

    private void touch_start(float x, float y) 
    { 
        mPath.reset();
        mPath.moveTo(x, y);
        mX = x;
        mY = y;
        System.out.println("---- " +mX);
    }
    private void touch_move(float x, float y) 
    { 
        float dx = Math.abs(x - mX);
        float dy = Math.abs(y - mY);
        if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
            mPath.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
            mX = x;
            mY = y;
        }
    }
    private void touch_up() 
    { 
        mPath.lineTo(mX, mY);
        //commit the path to our offscreen
        mCanvas.drawPath(mPath, mPaint);

        //kill this so we don't double draw
        mPath.reset();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) 
    {

        float x = event.getX();
        float y = event.getY();

        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            touch_start(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_MOVE:
            touch_move(x, y);
            invalidate();
            break;
        case MotionEvent.ACTION_UP:
            touch_up();
            invalidate();
            break;

        }
        return true;
    }

Kann ich in der Lage, um zu sehen, der grüne hintergrund beim erstellen der Signatur, aber es ist gespeichert auf schwarz blackground. bitte helfen Sie mir, vielen Dank im Voraus

  • post saveAsJpg () - Methode code....
  • wir müssen Leinwand hintergrund in onSizeChanged Methode, da Bitmap, die Sie verwendet haben, um es zu speichern verwenden canvas von onSizeChanged,Und Sie haben festgelegt, Canvas Farbe in onDraw so wird es sich zeigen , aber es hat nicht für Bitmap .Überprüfen Sie meine aktualisierten code.
Schreibe einen Kommentar