我在设置通知图像以正常显示时遇到问题。
下面是原始图像,文件路径:
myApp \ Resources \ drawable \ Icon.png
尺寸:72x72像素,32位深度
问题:
它显示如下。
下面是代码。该代码对于以前的版本似乎正常工作,可以正确显示它。
from django.apps import apps
from django.contrib.auth.management import _get_all_permissions
from django.contrib.auth.models import Permission
from django.core.management.base import BaseCommand
class Command(BaseCommand):
def handle(self, *args, **options):
builtins = []
for klass in apps.get_models():
for perm in _get_all_permissions(klass._meta):
builtins.append(perm[0])
builtins = set(builtins)
permissions = set(Permission.objects.all().values_list('codename', flat=True))
to_remove = permissions - builtins
res = Permission.objects.filter(codename__in=to_remove).delete()
self.stdout.write('Deleted records: ' + str(res))
环境:
public class MyServiceConnection : Java.Lang.Object, IServiceConnection
{
private string _appName;
public MyServiceConnection(string appName)
{
_appName = appName;
}
public void OnServiceConnected(ComponentName name, IBinder service)
{
var intent = new Intent(Application.Context, typeof(ManifestActivity));
intent.AddFlags(ActivityFlags.ClearTop);
var pendingIntent = PendingIntent.GetActivity(Application.Context, 0, intent, PendingIntentFlags.UpdateCurrent);
var notificationBuilder = new NotificationCompat.Builder(Application.Context)
.SetSmallIcon(Resource.Drawable.Icon)
.SetContentTitle(_appName)
.SetAutoCancel(true)
.SetContentIntent(pendingIntent);
var notificationManager = NotificationManager.FromContext(Application.Context);
var notification = notificationBuilder.Build();
notificationManager.Notify(1, notification);
var serviceBinder = service as MyService.Binder;
serviceBinder.StartForeground(1, notification);
}
public void OnServiceDisconnected(ComponentName name)
{
}
}
更新
正如我提到的,使用相同的代码和相同的png文件,并且现在可以在单独的apk上运行。为第二个分支创建代码后,问题就会在第二个分支上发生。
更新2
我通过更改以下内容进行了修复
项目属性-> Android清单->将Android Versin定位为“使用SDK版本进行编译”
这将导致以下提示:
android:minSdkVersion =“ 15”
“使用SDK版本使用编译”是什么意思? 安装在Lollipop上的目标版本是什么?
答案 0 :(得分:1)
由于Google对android5.0及更高版本(不包括5.0)进行了限制,以统一系统样式。之后,状态栏中的图标将无法随意使用色彩丰富的图片。它只能以白色和透明两种颜色显示。
您可以通过两种方式做到这一点:
1。通过降低targetSdkVersion方法显示颜色图标,但不支持降低targetSdkVersion方法。(不建议)
2。分别设置setSmallIcon(使另一个带有透明背景的白色图标)
if(Android.OS.Build.VERSION.SdkInt> BuildVersionCodes.Lollipop){
// white icon with a transparent background
notificationBuilder.SetSmallIcon(Resource.Drawable.ic_aphla_logo);
} else {
// icon image
notificationBuilder.SetSmallIcon(Resource.Drawable.ic_logo);
}
您可以参考:Notification bar icon turns white in Android 5 Lollipop