android - 如何在缩放或拖动(左,右,上,下)图像时准确定位另一个 View ?

标签 android android-layout imageview position zooming

我遇到了一个大麻烦。 我在图像背景上添加了一个 ImageView (绿色图标)。绿色图标的位置是动态设置的(图1)

enter image description here

此图片可以放大、缩小、左右拖动、上下拖动。我想在缩放或拖动图像背景时准确移动 imageview 的位置(绿色图标)。

当我缩放、拖动图片背景时,如何将 imageview 的位置(绿色图标)映射到图片背景?

图 2:图像背景已缩放,但绿色图标 View 未与图像背景映射,位置错误。

enter image description here

你能给我一些解决方案、方向或脚本建议吗?谢谢大家!

最佳答案

使用以下函数将标记图像位图覆盖图像位图并返回可用于显示的新位图

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2, float left, float top) {
        Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bmp1, new Matrix(), null);
        canvas.drawBitmap(bmp2, left, top, null); 
        return bmOverlay;
    }

例如:-

        Bitmap border = null;
        Bitmap scaledBorder = null;
        border = BitmapFactory.decodeResource(getResources(), R.drawable.palette);
        scaledBorder = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
        ImageView im = (ImageView) findViewById(R.id.imageView);
        im.setImageBitmap(overlay(border, scaledBorder, 0, 0));// replace both 0,0 point with your mark point 

关于android - 如何在缩放或拖动(左,右,上,下)图像时准确定位另一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631494/

相关文章:

android - Drawable绘制的图片比我想要的要小

c# - 带有源代码的 Monodroid 示例/小部件

android - 安卓平板的标准分辨率是多少?

android - View Holder 稳定性问题

android - android中的方形边缘不确定进度条

android - 如何创建完整的Round LinearLayout或RelativeLayout

android - 如何防止在 Android Imageview 中缩放?

android - ImageView 源缩放正确。如何?

android - 在 Android 中添加两个 View

java - Android java 在 thread.start 后崩溃