取而代之,請嘗試將您的ImageView作爲畫布繪製。
ImageView CanvasView = (ImageView) findViewById(R.id.fashion_pic)
從這裏,你可以創建自己的位圖和之後的TouchEvent重新繪製。下面的代碼片段包含在2.1的必要變通的錯誤(或2.2,我記不清了):
public void redrawImage() {
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.fashion_pic);
Bitmap proxy = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), Config.ARGB_8888);
Canvas c = new Canvas(proxy);
//Here, we draw the background image.
c.drawBitmap(bm, new Matrix(), null);
//Here, we draw the text where the user last touched.
c.drawText("Fashion", someGlobalXvariable, someGlobalYvariable, somePaint);
CanvasView.setImageBitmap(proxy);
}
在這裏,你已經創建了已經有你的圖片作爲背景和油漆文字畫布在x和y變量。現在,只需設置一個OnTouchListener:
CanvasView.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View v, MotionEvent e) {
someGlobalXvariable = e.getX();
someGlobalYvariable = e.getY();
redrawImage();
return true;
}
});
正如你所看到的,聽者會自動更新你的形象,當它被觸及,文本將按照用戶的手指。由於您使用的是位圖作爲畫布,如果您的應用程序想要具有這種功能,您還可以添加對保存/加載圖像的支持。
編輯:如果您從redrawImage()
中移動第1-3行並將它們放置在其他位置,將這些對象設置爲全局對象,它可能更具性能友好性。我會讓你修補它。
如果您真的提出問題,爲您的問題得到答案要容易得多。 – CommonsWare 2010-12-11 19:27:39
哦,明白了,我只是要求一張路線圖 – Hunt 2010-12-11 20:10:02