android转换为像素?

时间:2014-01-31 18:06:08

标签: php android density-independent-pixel

我的问题是我想通过每行显示2张图片来重新调整帖子内的所有图片

我的应用程序发送屏幕的宽度到php api php api必须将dip转换为像素并设置图像宽度50%的屏幕倾角

这是迄今为止的目标

Display d = getWindowManager().getDefaultDisplay(); 

int w = display.getWidth();  
int h = display.getHeight(); 

String response = get_html_postinfo("bla.php?postid=1&h="+h+"&w="+w);

//response will append it to WebView

在php方面

$screen_dip_w = $_GET['w'];
$screen_dip_h = $_GET['h'];

//i want this dip to be converted to pixel how ?
$screen_px_w = ( ? X $screen_dip_w );

$set_image_w = $screen_px_w/2;

任何想法?谢谢你

2 个答案:

答案 0 :(得分:3)

Display.getWidth()Display.getHeight()已经返回屏幕大小(以像素为单位),无需转换。

另外,我建议切换到使用Display.getSize(Point outSize),因为不推荐使用width和height方法。

developer.android.com/reference/android/view/Display.html

答案 1 :(得分:1)

我找到了一些解决方案:

public static int dpToPx(int dp)
{
    return (int) (dp * Resources.getSystem().getDisplayMetrics().density);
}

public static int pxToDp(int px)
{
    return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}

和此:

// Converts 14 dip into its equivalent px

Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14, r.getDisplayMetrics());