Notification使用系统通知栏布局时图标显示遇到的两个问题
1.在状态栏显示的图标变形。
2.修改下拉通知栏上显示的图标。
解决方法:
使用系统的通知栏界面布局的方法:
Notification messageNotification = new Notification();
messageNotification.icon = R.drawable.notify_icon;// 状态栏提示图标
messageNotification.tickerText = "";// 状态栏提示消息
messageNotification.flags |= Notification.FLAG_AUTO_CANCEL;// 点击消息后,该消息自动退出
注意:
messageNotificaton.icon是状态栏上显示的图标,建议使用48x48px,如果使用72x72px会出现图片变形的问题。
//利用反射机制修改通知栏图标
try
{
Class<?> clazz = Class.forName("com.android.internal.R$id");
Field field = clazz.getField("icon");
field.setAccessible(true);
int id_icon = field.getInt(null);
if( messageNotification.contentView!=null)
messageNotification.contentView.setImageViewResource(id_icon, R.drawable.ic_logo);//这个图标是通知下拉栏上显示的图标
}catch(Exception e)
{
e.printStackTrace();
}
上面的代码是通过反射机制来修改下拉的通知栏的contentView的图标。