1.尽量是给item一个固定高度,最外层不要设高度,里面套一层设置一个固定高度;如果用wrap_content的话,之后用alignTop等会出奇怪的问题。
2.如果要使用alignTop alignBottom,一定不要再写below之类的。
3.一般不同分辨率的布局,字体的实际px会根据scale density缩放,具体公式是
public
static
int
px2sp(Context context,
float
pxValue) {
final
float
fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return
(
int
) (pxValue / fontScale +
0
.5f);
}
/**
* 将sp值转换为px值,保证文字大小不变
*
* @param spValue
* @param fontScale
* (DisplayMetrics类中属性scaledDensity)
* @return
*/
public
static
int
sp2px(Context context,
float
spValue) {
final
float
fontScale = context.getResources().getDisplayMetrics().scaledDensity;
return
(
int
) (spValue * fontScale +
0
.5f);
}
一般情况下,scaledDensity=density的,所以 1sp=1dp的。。但是要注意,一个15sp的文本框,可能占的位置是不止15dp,布局时要给文本框多留一点空间。