在Android中将dip转换为px
我写了一个从dip中获取像素的方法,但它不起作用。它给我运行时错误 实际上,我在单独的类中运行这个方法,并在活动类中初始化在Android中将dip转换为px,android,Android,我写了一个从dip中获取像素的方法,但它不起作用。它给我运行时错误 实际上,我在单独的类中运行这个方法,并在活动类中初始化 Board board = new Board(this); board.execute(URL); 此代码以异步方式运行。请帮帮我 public float getpixels(int dp){ //Resources r = boardContext.getResources(); //float px = (int)TypedVa
Board board = new Board(this);
board.execute(URL);
此代码以异步方式运行。请帮帮我
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;
}
试试这个:
爪哇
科特林
fun Context.dipToPixels(dipValue: Float) =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, resources.displayMetrics)
公式为:px=dp*(dpi/160),用于在160 dpi屏幕上显示。有关更多信息,请参阅
你可以试试:
public static int convertDipToPixels(float dips)
{
return (int) (dips * appContext.getResources().getDisplayMetrics().density + 0.5f);
}
希望这有帮助…您可以在dimen.xml中添加dp值并使用
int pixels = getResources().getDimensionPixelSize(R.dimen.idDimension);
更容易…试试这个:因为不需要传递上下文
public static float dipToPixels(float dipValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, Resources.getSystem().getDisplayMetrics());
}
你有什么错误?boardContext为空?getResources为空?像素的浮点值是多少?是否应该将其转换为int?可行,但似乎将w,h应用到我的浮动活动中,android在右侧和左侧添加了16dp(总计32dp),我必须传递的dipValue是布局xml中的dipValue+32dp-修复了它
public static float dipToPixels(float dipValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, Resources.getSystem().getDisplayMetrics());
}