对于点,您正在使用像素进行绘制。所以 xhdpi 屏幕上的这些圆圈在视觉上会比 mdpi 屏幕上的小(像素更大)。
为了获得类似的尺寸(在更高 dpi 设备上使用更多像素),我建议如下更改 PageControl。
public class PageControl extends LinearLayout {
int page = 0;
int count = 0;
int spacer = 8;
private Boolean centered = true;
int r;
final int rDP = 8; // DP value (needs conversion to dp placed into r)
private final Paint mNormal = new Paint(Paint.ANTI_ALIAS_FLAG);
private final Paint mSelected = new Paint(Paint.ANTI_ALIAS_FLAG);
public PageControl(Context context) {
super(context);
r = dpToPx(context, rDP);
setWillNotDraw(false);
}
public PageControl(Context context, AttributeSet attrs) {
super(context, attrs);
r = dpToPx(context, rDP);
setWillNotDraw(false);
setCentered(true);
}
public int dpToPx(int dp) {
float density = getResources().getDisplayMetrics().density
return (int) (dp * density + 0.5f);
}