2014-02-15 12 views
0

在我的应用我指定使用动态“TypedValue.COMPLEX_UNIT_DIP”和“xp中的dp”是否有区别?

TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, mycontext.getResources().getDisplayMetrics()); 

我也使用一些其他的元素,其宽度在布局XML中指定的DP方面的几个要素的宽度。

但是,当我在我的Samsung Galaxy Grand上运行应用程序时,我观察到动态指定的100倾角并不完全等于在版面xml中指定的100 dp(略微更多)。

但是,当我在AVD上测试它时,它似乎很好(两个宽度匹配)。

还有其他人遇到过这个问题吗? 任何想法?

回答

0

发现此问题。

我做:

int pixels_unit_five = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, mycontext.getResources().getDisplayMetrics()); 

然后我用的部份价值一样具有不同宽度的观点:

android.widget.RelativeLayout.LayoutParams params_item = new RelativeLayout.LayoutParams(pixels_unit_five*20,pixels_unit_five*8); 

android.widget.RelativeLayout.LayoutParams params_item = new RelativeLayout.LayoutParams(pixels_unit_five*10,pixels_unit_five*8); 

等等..

的倾角值是正投以int为单位进行小调整以适应确切的像素值。这样,当乘以20时,像素值相差很大。

通过直接获得准确的倾角值并使用它们来求解。

相关问题