我写了一些方法来获取像素,但它不起作用.它给我运行时错误.
实际上我在单独的类中运行此方法并在我的Activity类中初始化
Board board = new Board(this);
board.execute(URL);
Run Code Online (Sandbox Code Playgroud)
此代码以异步方式运行.请帮我.
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;
}
Run Code Online (Sandbox Code Playgroud)
Dmy*_*lyk 134
试试这个:
Java的
public static float dipToPixels(Context context, float dipValue) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, metrics);
}
Run Code Online (Sandbox Code Playgroud)
科特林
fun Context.dipToPixels(dipValue: Float) =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, resources.displayMetrics)
Run Code Online (Sandbox Code Playgroud)
jua*_*lla 38
您可以在dimen.xml中添加dp值并使用
int pixels = getResources().getDimensionPixelSize(R.dimen.idDimension);
Run Code Online (Sandbox Code Playgroud)
它更容易......
小智 21
公式为: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);
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...
试试这个:对于没有传递上下文
public static float dipToPixels(float dipValue) {
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, Resources.getSystem().getDisplayMetrics());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54832 次 |
| 最近记录: |