所以我似乎有一個難題。我需要將多個自定義視圖添加到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
你究竟想要清除什麼?你有沒有一個前後圖像的例子? –