Android - Canvas drawLine inside ImageView

14,901

Try this:

private void crearPunto(float x, float y, float xend, float yend, int color) {

    bmp = Bitmap.createBitmap(mImagenCampo.getWidth(), mImagenCampo.getHeight(), Config.ARGB_8888);
    c = new Canvas(bmp);
        mImagenCampo.draw(c);

    Paint p = new Paint();
    p.setColor(color);
    c.drawLine(x, y, xend, yend, p);
    mImagenCampo.setImageBitmap(bmp);
}
Share:
14,901
gutiory
Author by

gutiory

Updated on June 14, 2022

Comments

  • gutiory
    gutiory almost 2 years

    I've one ImageView in which I want to draw a Line. I've done the follow:

    mImagenCampo = (ImageView) findViewById(R.id.imagen_campo); 
    

    crearPunto(mArea9M, mPaloIzq,v.getWidth(), mPaloIzq,Color.WHITE);

    And the function is:

    private void crearPunto(float x, float y, float xend, float yend, int color) {
    
        BitmapDrawable bmpDraw = (BitmapDrawable) mImagenCampo.getDrawable();
        Bitmap bmp = bmpDraw.getBitmap().copy(Config.RGB_565, true);
        Canvas c = new Canvas(bmp);
        Paint p = new Paint();
        p.setColor(color);
        c.drawLine(x, y, xend, yend, p);
        mImagenCampo.setImageBitmap(bmp);
    
    }
    

    My problem is that the line is drawn but It doesn't get the rights coordinates. It is drawn smaller than It should be.

    Thanks

    Edit: I forgot to say that mImagenCampo is an ImageView