在Android中将dip转换为px

我已经写了方法来从倾angular获得像素,但它不工作。 它给我运行时错误。

其实我在单独的类中运行这个方法,并在我的Activity类中初始化

Board board = new Board(this); board.execute(URL); 

这段代码是asynchronous运行的。 请帮帮我。

  public float getpixels(int dp){ //Resources r = boardContext.getResources(); //float px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpis, r.getDisplayMetrics()); final float scale = this.boardContext.getResources().getDisplayMetrics().density; int px = (int) (dp * scale + 0.5f); return px; } 

尝试这个:

 public static float dipToPixels(Context context, float dipValue) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics); } 

您可以在dimen.xml中添加dp值并使用

int pixels = getResources().getDimensionPixelSize(R.dimen.idDimension);

这很容易…

公式为:px = dp *(dpi / 160),用于在160 dpi屏幕上显示。 有关更多信息,请参阅http://developer.android.com/guide/practices/screens_support.html

你可以尝试:

 public static int convertDipToPixels(float dips) { return (int) (dips * appContext.getResources().getDisplayMetrics().density + 0.5f); } 

希望这可以帮助…