私はメインクラスにビットマップオブジェクトを持っています。このビットマップをカスタムビュークラスに送信して、それをキャンバス上でのさらなる処理の背景として設定する必要があります。私のカスタムビューのキャンバスにビットマップイメージを設定するには?
たとえば、ビットマップをパラメータとして受け取るsetPictureというメソッドがあります。だから、どのようにキャンバスにこのビットマップを描画することは可能ですか?
以下のコードを参照してください:私はonDrawにこのビットマップを送信する必要がありますどのように
public class TouchView extends View {
final int MIN_WIDTH = 75;
final int MIN_HEIGHT = 75;
final int DEFAULT_COLOR = Color.RED;
int _color;
final int STROKE_WIDTH = 2;
private Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
private float x, y;
private boolean touching = false;
public TouchView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
init();
}
public TouchView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}
public TouchView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}
private void init() {
setMinimumWidth(MIN_WIDTH);
setMinimumHeight(MIN_HEIGHT);
_color = DEFAULT_COLOR;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),
MeasureSpec.getSize(heightMeasureSpec));
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (touching) {
paint.setStrokeWidth(STROKE_WIDTH);
paint.setColor(_color);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(x, y, 75f, paint);
}
}
public void setPicture (Bitmap bitmap) {
///////
This method must receive my bitmap to draw it on canvas!!!!!!!!!!!!!!!
///////
}
public void setColor(int color) {
_color = color;
}
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
// TODO Auto-generated method stub
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_DOWN:
x = motionEvent.getX();
y = motionEvent.getY();
touching = true;
break;
default:
touching = false;
}
invalidate();
return true;
}
}
を?あなたのonDraw()
メソッド内
Doomsknight、ありがとう!それは動作し、あなたは私の一日を作った! :)) – Carlos
私は質問がどのようにMainActivityからカスタムビューにmyBitmap変数を取得すると思った。あなたの答えでは、myBitmapは未定義です。 – Donato
@Donato私は、彼がカスタムビューに渡すよりもイメージを描画することに問題があるのを見たと思います。参照ビットマップ/ IDを設定するメソッドを作成するか、コンストラクタのパラメータとして追加します。 – Doomsknight