Hun*_*unt 11 android drag-and-drop
我想在android 2.X中拖放图像上的文本视图
请看下面的这张图片.

这里,"蓝色"表示ViewGrop,"白色"表示ImageView,图像在ImageView上设置.写"Fashion"的文字是TextView.这就是我实现结构的方式.现在我想让用户选择TextView并将其拖动到图像的任何部分,然后将其放在图像上所需的位置.
截至目前为参考我试图引用以下网址,但每当我使用TextView而不是按钮时,事情变得异常.
任何人都可以给我路线图或示例来完成它吗?
Sna*_*ler 10
相反,尝试将ImageView作为画布进行绘制.
ImageView CanvasView = (ImageView) findViewById(R.id.fashion_pic)
从这里你可以创建自己的Bitmap并在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);
}
Run Code Online (Sandbox Code Playgroud)
在这里,您创建了一个画布,它已经将您的图片作为背景,并在x和y变量处绘制文本.现在,只需设置一个OnTouchListener:
CanvasView.setOnTouchListener( new OnTouchListener(){
public boolean onTouch(View v, MotionEvent e) {
someGlobalXvariable = e.getX();
someGlobalYvariable = e.getY();
redrawImage();
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,侦听器会在触摸时自动更新图像,文本将跟随用户的手指.由于您使用Bitmap作为画布,因此如果您的应用程序想要具有此类功能,您还可以添加对保存/加载图像的支持.
编辑:如果从第1-3行移动redrawImage()并将它们放在其他位置,将这些对象设置为全局对象,它可能更加性能友好.我会让你修补它.
| 归档时间: |
|
| 查看次数: |
5352 次 |
| 最近记录: |