从ImageView获取Bitmap图像的坐标小两倍

时间:2011-10-12 19:36:18

标签: android bitmap android-imageview

我的ImageView包含Bitmap图片。图像是其容器的两倍大。我已宣布onScroll()能够移动Bitmap图像。如何在ImageView图片上获取Bitmap的坐标?

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
_iv.setImageBitmap(bm);
_iv.setAdjustViewBounds(true);
_iv.setMaxHeight(bm.getHeight());
_iv.setMaxWidth(bm.getWidth());
_iv.setScaleType(ImageView.ScaleType.CENTER);

Bitmap newBm = Bitmap.createScaledBitmap(bm, bm.getWidth() * 2, bm.getHeight() * 2, true);
_iv.setImageBitmap(newBm);

1 个答案:

答案 0 :(得分:0)

我还没有找到实际的方法来做到这一点。这是我用过的方法:

创建ImageView后,滚动到已知位置。

int ivX = 0;
int ivY = 0;

_iv.invalidate();
_iv.scrollTo(ivX, ivY);

这样我就可以得到确切的(x,y)坐标。然后,我实现了onScroll()方法并使用生成的距离重新计算我的(x,y)坐标:

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    //Add the scroll distance to the old X, Y coordinates
    ivX += distanceX;
    ivY += distanceY;

    //Scroll to the new location
    _iv.scrollTo(ivX, ivY);

    return false;
} //End onScroll()

此外,为了更好地了解scrollTo()的工作原理以及图片坐标与其容器之间的关系,请按照此link查看我的不同帖子。