在视图内绘制图像而不进行子类化

时间:2015-03-13 22:22:54

标签: android canvas bitmap android-canvas android-bitmap

我可以在没有子类化的情况下在视图中绘制图像吗?我试过了:

TextView texto = (TextView) viewGroup.findViewWithTag("text");
Paint p = new Paint();
p.setColor(Color.WHITE);
Bitmap b = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_lanc);
Bitmap b2 = b.copy(Bitmap.Config.ARGB_8888, true);
Canvas c = new Canvas(b2);
c.drawBitmap(b, 1, 1, p);
textView.draw(c);

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

绘图不是那样的。 textview的draw()方法将由android调用,系统提供canvas实例。当您使用自己创建的画布自行调用时,textview将在画布实例上绘制自己,但这与屏幕上显示的内容无关。

答案 1 :(得分:0)

您不能直接执行此操作 - 在视图上调用draw(Canvas)将导致 View 在画布中执行其绘图命令。因此,在您的情况下,将TextView绘制到您提供的Canvas上(而不是相反)。

如果你需要这样做,你可以在自定义绘图本身的视图上设置drawable的子类,然后 将在View的画布中绘制,但无论你是什么? #39;试图在这里做,这可能是一种更简单的方法。如果不了解您的要求,就无法说出来。