對於點,您正在使用像素進行繪製。因此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);
}
六邊形是ShapeDrawables,我沒有真正的資源來定義。 – hanleyhansen