每个人的好日子
我希望你能帮助我理解理解如何在View上实现的OnTouchEvent上将图像添加到画布中的概念。到目前为止,这是我想出来的。
父是在此自定义视图中实例化并添加到其中的活动。
@Override
protected void onDraw(Canvas canvas)
{
// TODO Auto-generated method stub
super.onDraw(canvas);
}
public void insertImage()
{
if (parent.selected_icon.contentEquals("image1"))
{
image = getResources().getDrawable(R.drawable.image1);
}
else if (parent.selected_icon.contentEquals("image1"))
{
image = getResources().getDrawable(R.drawable.image2);
}
else if (parent.selected_icon.contentEquals("iamge3"))
{
image = getResources().getDrawable(R.drawable.image3);
}
Rect srcRect = new Rect(0, 0, image.getIntrinsicWidth(),
image.getIntrinsicHeight());
Rect dstRect = new Rect(srcRect);
Bitmap bitmap = Bitmap.createBitmap(image.getIntrinsicWidth(),
image.getIntrinsicHeight(), Bitmap.Config.ALPHA_8);
Canvas canvas = new Canvas();
canvas.drawBitmap(bitmap, srcRect, dstRect, null);
invalidate();
}
答案 0 :(得分:1)
如果要绘制视图,则必须使用onDraw()
在Canvas
中执行此操作。 Canvas
已绑定到Bitmap
,这是您视图的实际绘图。
我必须做类似的事情,我的方法是这样的:
invalidate()
,以便onDraw()
被调用。onDraw()
看起来像这样:...
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // the default drawing
for(ThingToBeDrawn thing : mListOfThingsToBeDrawn) {
thing.drawThing(canvas); // draw each thing over the view
}
}
Canvas
只是用于绘制Bitmap
的工具,其工作方式与SurfaceView
完全不同。