2011-12-09 37 views
8

Tôi đã có một ImageView mà tôi muốn vẽ một Đường. Tôi đã thực hiện sau:Android - Canvas drawLine bên trong ImageView

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

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

Và chức năng là:

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

} 

Vấn đề của tôi là các đường thẳng được vẽ nhưng Nó không nhận được tọa độ quyền. Nó được rút ra nhỏ hơn Nó nên được.

Cảm ơn

Edit: Tôi quên nói rằng mImagenCampo là một ImageView

Trả lời

16

Hãy thử điều này:

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); 
} 
+1

Thanks a lot. Nó hoạt động hoàn hảo. – gutiory

Các vấn đề liên quan