android地图动态点,Android:如何制作可点击的地图图像,并使每个国家/地区采取不同的行动?...

博客讨论了在Android中处理Bitmap和ImageView缩放时遇到的颜色匹配问题。作者详细介绍了如何加载未缩放的掩码图像,并通过计算坐标来获取正确的像素颜色,但发现只有在使用'fitXY'缩放类型时才能正常工作。文章探讨了坐标转换的算法,并寻求解决方案。
摘要由CSDN通过智能技术生成

我像Scotty所说的那样戴了口罩,但是遇到了更多的问题。基本上,getPixel返回的颜色与遮罩文件中的颜色略有不同。我要做的是在禁用缩放和使用全色选项的情况下将掩码加载到内存中:

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();

bitmapOptions.inTargetDensity = 1;

bitmapOptions.inDensity = 1;

bitmapOptions.inDither = false;

bitmapOptions.inScaled = false;

bitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;

mask = BitmapFactory.decodeResource(appContext.getResources(), resMask, bitmapOptions);

然后我从缩放后的图像中查找坐标,如下所示:

ImageView map = (ImageView) findViewById(R.id.image);

Drawable drawable = map.getDrawable();

Rect imageBounds = drawable.getBounds();

int scaledHeight = imageBounds.height();

int scaledWidth = imageBounds.width();

int scaledImageOffsetX = Math.round(event.getX()) - imageBounds.left;

int scaledImageOffsetY = Math.round(event.getY()) - imageBounds.top;

int origX = (scaledImageOffsetX * mask.getWidth() / scaledWidth);

int origY = (scaledImageOffsetY * mask.getHeight() / scaledHeight);

if(origX < 0) origX = 0;

if(origY < 0) origY = 0;

if(origX > mask.getWidth()) origX = mask.getWidth();

if(origY > mask.getHeight()) origY = mask.getHeight();

然后我应用了mask.getPixel(origX,origY)。仅当在ImageView中使用android:scaleType =“ fitXY”缩放图像时,此功能才有效,否则会关闭坐标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值