1

Line特定の 、RectangleまたはBitmapを使用して描画したいCanvas。ビットマップ上に描画すると、正方形の空の背景も取得されます。

だから私はその特定Bitmapの領域だけを描きたい.

4

2 に答える 2

3

希望の画像から「bmp1」という名前のビットマップを
作成する カスタム ビュー
を作成する クラスを作成し、View を次のように拡張します

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

最後にカスタムビューをレイアウトに配置し、フィールドを設定して、必要なものすべてを描画するためにビューに値を送信します

これがあなたが望むものではない場合、それがあなたの助けになることを願っています!
あなたのコードを投稿してください。多分私はあなたをもっと助けることができます

于 2013-07-09T15:03:36.550 に答える