我正在通过后台服务发出通知。在通知中我正在显示图像,图像尺寸为15 * 15。但是当显示图像时,它会自动拉伸到大尺寸,因此变得模糊。我没有在程序中指定图像大小。为什么会这样?
答案 0 :(得分:10)
参考状态栏图标指南: http://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html
对于 hdpi 状态栏图标图像应为38px高度(24x38),
mdpi - 16x25
ldpi - 12x19
答案 1 :(得分:8)
Guildlines表示24x24,即mdpi。
应用转化dp*density/160
,您可以获得这些像素分辨率:
ldpi 18x18
mdpi 24x24
hdpi 36x36
xhdpi 48x48
(指南实际上现在列出了这4个维度)
如果您要创建图像或调整图像大小以修复大型通知图像区域,则可以获得像素尺寸:
int width = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_width);
int height = resources.getDimensionPixelSize(android.R.dimen.notification_large_icon_height);
请参阅https://developer.android.com/reference/android/R.dimen.html#notification_large_icon_height
答案 2 :(得分:0)
这是因为在Java中指定尺寸时,它自动被视为像素值。
您必须在某处实现辅助方法,最好在辅助类中实现,它根据提供的像素值计算并返回与密度无关的像素值。
等式为px = dip * (density / 160)
,我们从中得到dip = px / (density/160)
。
这个答案here实际上更好。