Android - Canvas drawLine внутри ImageView - PullRequest
8 голосов
/ 09 декабря 2011

У меня есть один ImageView, в котором я хочу нарисовать линию. Я сделал следующее:

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

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

И функция:

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);

}

Моя проблема в том, что линия нарисована, но она не получает координаты прав. Рисуется меньше, чем должно быть.

Спасибо

Редактировать: я забыл сказать, что mImagenCampo - это ImageView

1 Ответ

16 голосов
/ 09 декабря 2011

Попробуйте это:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...