所以我似乎有一个难题。我需要将多个自定义视图添加到framelayout。这个代码工作得很好。但是,我希望访问画布在视图onDraw方法中使用的底层位图。像这个(在一个扩展视图类):android自定义视图ondraw,从画布获取位图?
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawARGB(Color.alpha(bgColor), Color.red(bgColor),
Color.green(bgColor), Color.blue(bgColor));
m.reset();
m.setTranslate(imgPosX - ((float) userImage.getWidth()/2.0f), imgPosY
- ((float) userImage.getHeight()/2.0f));
m.postRotate(angle);
m.postScale(1.0f, 1.0f);
canvas.drawBitmap(userImage, m, null);
}
我希望从本质上消除某些像素。现在,我知道我可以通过setPixel方法来做到这一点,但它非常缓慢并且不令人满意。我有一个工作ndk函数,正是我想要的,但它传递了一个位图。我知道我可以使用SurfaceView而不是View来访问位图,但是正如here所述,FrameLayout中的多个SurfaceView不是一个选项。所以,我想我需要操作onDraw方法中由画布使用的位图本身。我会如何去做这件事?或者我不介意创建另一个位图,将它传递到ndk函数并返回/绘制,但是,我会用透明像素做一个canvas.drawBitmap吗?
,如果我做一个空白的位图,只应用透明像素,然后回来和porterduff drawbitmap,将它设置为仅我在新的位图变为透明画布上的像素? – codingNewb
nope,no luck =( – codingNewb
你究竟想要清除什么?你有没有一个前后图像的例子? –