【发布时间】:2016-07-09 17:19:53
【问题描述】:
我很难做到这一点。
基本上我正在创建一个 ImageView 并向其应用一个 LayoutParameter。
LayoutParams lp = new LayoutParams(width, height);
lp.gravity = Gravity.CENTER;
我知道width 和height 参数接收像素数,所以我在DP 中传递它们并使用以下方法将其转换为绝对像素:
public int convertToPixels(float dpSize){
final float density = getResources().getDisplayMetrics().density;
return ((int) (dpSize * density + 0.5f));
}
据我所知,这应该使可绘制对象在不同屏幕上填充完全相同的区域,对吧?不幸的是,这根本没有发生。
我使用的这些方法有问题吗?
下面这两个模拟器具有相同的图像和相同数量的 DP。 左边的模拟器是 1.0 密度,右边是 2.0。为什么看起来还是 太不同了 ?不明白..
【问题讨论】: