2013-09-05 90 views
0

像素密度我有一個下面的動畫:的Android爪哇確定在代碼

ImageView fallingLeave = (ImageView) rootView.findViewById(R.id.lemonpiece1_large); 
        mButtonProxy = AnimatorProxy.wrap(fallingLeave); 

        // Set up the path we're animating along 
        AnimatorPath path = new AnimatorPath(); 
        path.moveTo(0,0); 
        path.curveTo(0, 0, 0 , 80, -80, 70); 
        fallingLeave.setRotation(80); 
        path.curveTo(-80, 70, -80, 120, 80, 140); 
        path.curveTo(80, 140, 80, 190, -80, 210); 


        // Set up the animation 
        final ObjectAnimator anim = ObjectAnimator.ofObject(this, "buttonLoc", 
          new PathEvaluator(), path.getPoints().toArray()); 
        anim.setDuration(2000); 


        anim.start(); 

問題是,路徑被設定在固定的像素。我想要做的是設置獨立的路徑像素。任何想法如何實現?

我試圖將變量鏈接到dimensions.xml,但它沒有工作,我寧願用像素密度比MULTIPLY像素路徑,但我不知道是否有函數可以返回密度值設備的比率。

任何幫助表示讚賞。

+0

'[Context.getResources.getDimensionsPixelSize()](http://developer.android.com/reference/android/content/res/Resources.html#getDimensionPixelSize(int))'從未失敗過。也許你可以詳細說明爲什麼這不適合你。但是這是遵循的方法,因爲它可以更好地配置爲以這種方式工作。 – gunar

回答

0

Here's的答案,可能會有所幫助。 從答案那裏看起來這是你要找的

DisplayMetrics dm = context.getResources().getDisplayMetrics(); 
int densityDpi = dm.densityDpi; 
+0

謝謝,這是我一直在尋找的 – Jenda

0
DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

現在使用dm.xdpi()dm.ydpi()獲得在X和Y尺寸的像素密度。

0

您可以使用這裏找到DisplayMetrics類行:DisplayMetrics

,並使用密度場

的顯示器的邏輯密度。這是密度無關像素單位的縮放係數,其中一個DIP在大約160 dpi的屏幕上(例如240x320,1.5「x2」屏幕)上的一個像素,提供系統顯示的基線。因此在160dpi的屏幕上,這個密度值將是1;在120 dpi的屏幕上它將是0.75;等等

希望它有幫助。