2011-10-12 91 views
4

我有一個ImageView包含一個Bitmap圖像。該圖像是其容器的兩倍大。我已宣佈onScroll()能夠在Bitmap圖片周圍移動。如何獲得Bitmap圖像上ImageView的座標?從ImageView獲取位圖圖像座標的兩倍小

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

回答

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到我的另一個職位。