取而代之,请尝试将您的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