karthik
karthik

Reputation: 123

Paint over the specific area in Android

I want to draw over the specific Line, Rectangle or Bitmap using Canvas. If i draw over the Bitmap, it will take the square shape empty background also.

So i want to draw over that particular Bitmap area only.

Upvotes: 1

Views: 1912

Answers (2)

Saeed-rz
Saeed-rz

Reputation: 1443

create a bitmap with "bmp1" name from your desire image
create a custom view
create a class and extend View like this

class MyCustomView extends View{

private Rect m_ImageRect;
private Rect m_TextRect ;

//you need these constructor
//you can init paint object or anything on them
public MyCustomView (Context context, AttributeSet attrs, int defStyle)
{
    super(context, attrs, defStyle);
    m_Context = context;

}

public MyCustomView (Context context, AttributeSet attrs)
{
    super(context, attrs);
    m_Context = context;

}

public MyCustomView (Context context)
{
    super(context);
    m_Context = context;

}

//then override on draw method
@Override
protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);
            //here frist create two rectangle
            //one for your image and two for text you want draw on it
    m_ImageRect = canvas.getClipBounds();
        m_TextRect = canvas.getClipBounds();
            //it gives you an area that can draw on it,
            //the width and height of your rect depend on your screen size device
            canvas.drawBitmap(your bitmap(bmp1), null, m_ImageRect , paint);
            canvas.save();
    canvas.clipRect(m_TextRect);

            canvas.drawText("your text", the x position you want to start draw,
            the y position you want to start draw, m_paintText);

            canvas.restore();
}
}

at the end put the custom view on your layout,and set field on it to send value to view for draw every thing you want

i hope it's help you,if this is not what you want!
post your code so maybe i can help you more

Upvotes: 3

Zielony
Zielony

Reputation: 16537

Seems like you need clipping. See exampls: http://www.example8.com/category/view/id/15543 , Understanding Android Canvas Clipping , http://jtomlinson.blogspot.com/2008/10/clipping.html

With clipping you can specify, which regions should be 'editable'.

Upvotes: 0

Related Questions