Я написал два метода, названные _dp и _sp, чтобы преобразовать в ценности SP и разность потенциалов.
private DisplayMetrics displayMetrics;
private boolean isPortrait;
int _dp(float pixels) {
return (int)(pixels * displayMetrics.density);
}
float _sp(float pixels) {
return (pixels * displayMetrics.scaledDensity);
}
В вашем onCreate необходимо установить displayMetrics значение:
displayMetrics = (this.getResources()).getDisplayMetrics();
Тогда вы просто используете _sp и _dp, чтобы получить стоимость SP/разности потенциалов. Например, установить шрифт, измеренный в 18
renderer.setAxisTitleTextSize(_sp(18));
И установить края с ценностями разности потенциалов:
renderer.setMargins(new int[] {_dp(25), _dp(30), _dp(35), _dp(20)});
NOTE: I made one change to this code. It is possible to get a 0 value for these functions -- which is a real problem if you are dividing by the return value. I added a test to return 1 if the return value is < 1. ie: return ((rv < 1) ? 1 : v);