gpt4 book ai didi

android - 在android中拖放textview

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:32 26 4
gpt4 key购买 nike

我想在 android 2.X 中将 TextView 拖放到图像上

请看下面这张图片。 alt text

这里,“蓝色”颜色代表 ViewGrop ,“白色”是 ImageView,图像设置在 ImageView 上。写成“Fashion”的文本是一个 TextView。这就是我实现结构的方式。现在我想让用户选择 TextView 并将其拖到图像的任何部分,然后将其放在图像上所需的位置。

截至目前,作为引用,我尝试引用以下网址,但每当我使用 TextView 而不是 Button 时,事情就会变得异常。

link text

任何人都可以给我路线图或示例来完成它吗?

最佳答案

相反,尝试将您的 ImageView 作为 Canvas 绘制。

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);
}

在这里,您已经创建了一个 Canvas ,它已经将您的图片作为背景并在 x 和 y 变量上绘制文本。现在,只需设置一个 OnTouchListener:

CanvasView.setOnTouchListener( new OnTouchListener(){

public boolean onTouch(View v, MotionEvent e) {

someGlobalXvariable = e.getX();
someGlobalYvariable = e.getY();
redrawImage();
return true;
}
});

如您所见,当您的图像被触摸时,监听器会自动更新您的图像,文本将跟随用户的手指移动。由于您使用位图作为 Canvas ,因此如果您的应用想要拥有这种功能,您还可以添加对保存/加载图像的支持。

编辑:如果您将 redrawImage() 中的第 1-3 行移动到其他位置,将这些对象设置为全局对象,则可能对性能更友好。我会让你修补它。

关于android - 在android中拖放textview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com