В моем приложении мне нужно сделать растровые значки, которые накладываются на карту Google Map так же.Android Создание размера растрового изображения на экране Плотность
public Bitmap makeBubble(int radius, int color) {
Bitmap bm = Bitmap.createBitmap(radius * 2, radius * 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(color);
paint.setStyle(Paint.Style.FILL);
canvas.drawCircle(bm.getWidth()/2, bm.getHeight()/2, radius, paint);
paint.setColor(Color.argb(255, Color.red(color), Color.green(color), Color.blue(color)));
paint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(bm.getWidth()/2, bm.getHeight()/2, radius, paint);
return bm;
}
Однако эти значки имеют значительно разные размеры при различных плотностях экрана (как и следовало ожидать).
Как создать их в одном размере на всех плотностях экрана?
рассчитать радиус перед вызовом этой функции (радиус может быть любое значение, не определено заранее), так что я могу Использовать заданное значение в ресурсах. – mbacvanski
как вы вычисляете радиус? на основе чего? –
Радиус рассчитывается на основе другого фактора, но мой реальный вопрос заключается в том, чтобы удостовериться, что при одинаковом радиусе на двух устройствах нарисованный растровый рисунок будет иметь тот же физический размер, независимо от плотности экрана. – mbacvanski