java显示位图_java – 大图标位图在通知中显示为白色方块?
我有这个问题,我从我在通知中使用的URL生成位图.然而,在我的手机上,Bitmap显示为一个小白色的方块.我看着它,发现很多帖子像这样说:
Icon not displaying in notification: white square shown instead
我确定我的小图标通知确实是透明的.然而,对于大图标,我意识到大图标不能透明,因为它实际上是一个从URL生成的位图.那么我该如何解决这个问题,并确保图像呈现正确,而不是将大图标显示为白色方块?这是我的尝试:
NotificationService.java:
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context)
.setContentTitle(getString(R.string.app_name))
.setContentText(remoteMessage.getNotification().getBody())
.setTicker(remoteMessage.getFrom() + " has responded!")
.setLargeIcon(AndroidUtils.getBitmapFromURL(remoteMessage.getNotification().getIcon()))
.setAutoCancel(true)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setStyle(new NotificationCompat.BigTextStyle().bigText(remoteMessage.getNotification().getBody()))
.setSmallIcon(R.drawable.ic_tabs_notification_transparent);
AndroidUtils.java:
public static Bitmap getBitmapFromURL(String userId) {
try {
URL imgUrl = new URL("https://graph.facebook.com/" + userId + "/picture?type=large");
InputStream in = (InputStream) imgUrl.getContent();
Bitmap bitmap = BitmapFactory.decodeStream(in);
Bitmap output;
Rect srcRect;
if (bitmap.getWidth() > bitmap.getHeight()) {
output = Bitmap.createBitmap(bitmap.getHeight(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
srcRect = new Rect((bitmap.getWidth()-bitmap.getHeight())/2, 0, bitmap.getWidth()+(bitmap.getWidth()-bitmap.getHeight())/2, bitmap.getHeight());
} else {
output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getWidth(), Bitmap.Config.ARGB_8888);
srcRect = new Rect(0, (bitmap.getHeight()-bitmap.getWidth())/2, bitmap.getWidth(), bitmap.getHeight()+(bitmap.getHeight()-bitmap.getWidth())/2);
}
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
float r;
if (bitmap.getWidth() > bitmap.getHeight()) {
r = bitmap.getHeight() / 2;
} else {
r = bitmap.getWidth() / 2;
}
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(r, r, r, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, srcRect, rect, paint);
return output;
} catch (IOException e) {
FirebaseCrash.report(e);
return null;
}
图像显示我的问题:
编辑:Build.gradle文件显示:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
defaultConfig {
applicationId ''
multiDexEnabled true
minSdkVersion 21
targetSdkVersion 23
versionCode 12
versionName ".12"
signingConfig signingConfigs.Tabs
}
buildTypes {
release {
minifyEnabled false
shrinkResources false
zipAlignEnabled true
debuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.Tabs
}
debug {
applicationIdSuffix ".debug"
debuggable true
minifyEnabled false
signingConfig signingConfigs.Tabs
}
}
//DatabaseReference stuff
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
dexOptions {
javaMaxHeapSize "4g"
}
productFlavors {
}
}
java显示位图_java – 大图标位图在通知中显示为白色方块?相关推荐
- 大数据开发和java的前景_Java大数据开发前景好吗?
在IT职业领域,Java一直以来都是占据着非常重要的位置的,而在进入大数据时代之后,Java也再次获得了更好的发展方向.在大数据应用开发当中,Java是重要的编程语言,学大数据需要Java基础.今天我 ...
- win7桌面上显示html,win7桌面图标不见了怎么办,显示Windows 7桌面图标的方法
打开电脑发现电脑桌面没有任何图标的显示,默认的Windows 7桌面就只有一个垃圾桶,"我的电脑"."Internet Explorer图标".及"我 ...
- php添加网站ico图标,phpcms在地址栏中显示网站图标的方法(增加网站ico图标)
本文关键详细介绍了phpcms在地址栏中显示信息网站图标的方式(提升网站ico图标),必须的盆友能够参照下 phpcms怎样在地址栏中显示信息网站的图标 最先寻找网站的css文件,刚开始在里面改动. ...
- listview显示mysql数据_C#在listview控件中显示数据库数据
一.了解listview控件的属性 view:设置为details columns:设置列 items:设置行 1.将listview的view设置为details 2.设置列属性 点击添加,添加一列 ...
- Android官方开发文档Training系列课程中文版:通知用户之在通知中显示进度
原文地址:http://android.xsoftlab.net/training/notify-user/display-progress.html#FixedProgress 通知中包含了一个进度 ...
- android 显示日历,如何在android的设置屏幕中显示已安装的日历列表
您需要查询 CalendarProvider(自API级别14以来可用)的日历表以获取可用日历.以下代码段将向您展示如何: final String[] EVENT_PROJECTION = new ...
- java月份简写_Java如何以(MMM)格式显示一个月份的名称?
JAVA中,如何以(MMM)格式显示一个月份的名称? 此示例显示如何使用Calender类的Calender.getInstance()方法和Formatter类的fmt.format()方法来显示( ...
- java biginteger 运算_Java大数字运算之BigInteger 原创
在 Java中,有许多数字处理的类,比如Integer 类.但是Integer 类有一定的局限性,下面我们就来看看比 Integer 类更厉害的一个,BigInteger类. BigInteger类型 ...
- 大数据和java就业前景_java大数据开发的就业前景及未来趋势
有这样一句话叫数据重构商业,流量改变未来.小编带你1分钟解读java大数据开发的就业前景及未来趋势,作为大数据岗位中的 "大熊猫",大数据工程师的收入待遇可以说达到了同类的顶级.j ...
最新文章
- HTML5之音频audio知识(部分vedio)
- GNU make manual 翻译( 一百八十一)
- 【java排序】 归并排序算法、堆排序算法
- java数组实验报告_Java实验一实验报告
- Error: .eslintrc.js » eslint-config-standard: Environment key “es2021“ is unknown 版本兼容问题
- 为什么会存在TIME_WAIT socket-详细分析No buffer space available
- 实战:kafka实现日志收集系统
- 协议实现objective C 协议的实现
- JavaScript实现中国地图圆点标注(二十四)
- linux多人共享桌面,gnome 开远程桌面共享功能(linux启动多个桌面)
- 内存的工作原理及时序介绍
- 深度学习NLP-词向量篇(含代码实现)
- 计算机蓝牙快捷键,笔记本蓝牙快捷键是什么_怎么打开笔记本电脑蓝牙-win7之家...
- 【Unity3d】存档与读档
- 微信小程序python token验证_微信小程序爬虫遇到 token 的问题
- ios sdk 穿山甲_iOS 穿山甲广告 SDK 的使用
- 第六天 01-hydra工具windows远程桌面的密码爆破
- 【历史上的今天】6 月 4 日:微软收购 Github;MacOS Mojave 推出;英特尔发布第四代架构 Haswell
- python urllib模块
- 通过SSH隧道连接远程MySQL-rds服务
热门文章
- 属性匹配工具_测试工具链——高效构建Mock服务
- 剑指offer:面试题14- I. 剪绳子
- 【Relax人生法则之躺平方法论】那些看似无足轻重 实则细思极恐的毒鸡汤
- Angular给HTML节点绑定自定义属性和变量,用于设置一些动态的状态变化非常有用!
- 在CentOS上安装TCP协议性能评测工具tcpdive
- 业余快速学习虚幻引擎教程
- ceph nautilus相对于minic的主要改动
- [BZOJ] 1606: [Usaco2008 Dec]Hay For Sale 购买干草
- 【VS开发】【电子电路技术】RJ45以太网传输线研究
- cf 414B Mashmokh and ACM 动态规划