2014-10-02 46 views
0

其驅動我瘋狂,我嘗試使用矩陣變換在視圖中居中位圖並且它拒絕工作,我搜索了您提供的postTranslate的數據類型,但是可以'找不到任何關於它...我天真地以爲這是oiuxels,但它顯然並非如此......使用矩陣變換在視圖中居中位圖

這裏是我的代碼:

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
{ 
    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    viewWidth = getMeasuredWidth(); 
    viewHeight = getMeasuredHeight(); 
    screenCenter = new Point(viewWidth/2, viewHeight/2); 
    Log.d(TAG,"ViewWidth "+viewWidth+","+viewHeight+" cent "+ screenCenter); 
    Bitmap map = hexgrid.getMap(); 
    Point moveTo = new Point(screenCenter.x - map.getWidth()/2, 
          screenCenter.y - map.getHeight()/2); 
    Log.d(TAG,"map "+map.getWidth()+","+map.getHeight()+" trans "+moveTo); 
    moveTo = new Point(323,140); 
    mapTransform.postTranslate(moveTo.x,moveTo.y); 

}

的演算的左上角給我419,53,但光學公司正確的值 將是323,140,我沒有看到我的計算和我測試出來的關係...

所以我做錯了什麼?

回答

0

沒關係,這是很奇怪的,如果有人有一個答案,我把它,移動矩陣mapTransform到的onDraw方法,而不是onMeasure解決了這個問題....

現在我用了CPU沒有任何循環,但至少它的作品....