自定义布局notification布局 怎么打jar包

Android notification动态设置网络图片icon
Android notification动态设置网络图片icon
[摘要:公司项目有个需供,须要正在收收Notification的时间静态减载办事器的图片,正在网上找了半天,出有完全的代码。研讨了半天总算完成了。也许思绪以下 自界说Notification的结构文件,如许能]
公司项目有个需求,需要在发送Notification的时候动态加载服务器的图片,在网上找了半天,没有完整的代码。研究了半天总算实现了。大概思路如下
自定义Notification的布局文件,这样能够很方便设置View的属性。
首先加载网络图片,使用BitmapFactory.decodeStream解析出Bitmap,然后设置到自定义布局文件中的ImageView上。
自定义Notification布局如下:
[java]&view
Java实现代码:
[java]&view
感谢关注 Ithao123Android频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊在4.1版本后怎么样自定义宽视图Notification-Android开发问答_百度知道
在4.1版本后怎么样自定义宽视图Notification-Android开发问答
提问者采纳
只要将你定义的notification的bigContentView赋值为一个RemoteViews.&#47.R。可以如下定义notification.contentView = remoteView.1还有支持大布局.bigContentView = remoteView.notification),这个是自定义的小布局.notification布局加载出来.notification就是你自己的布局;&#47.getPackageName().getPackageName()RemoteViews remoteView = new RemoteViews(cnt.layout.notification),
R,这个RemoteViews可以通过new RemoteViews(cnt,4,
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android不使用自定义布局情况下实现自定义通知栏图标的方法
作者:天使之翼
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Android不使用自定义布局情况下实现自定义通知栏图标的方法,实例分析了Android通知栏图标的创建技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了Android不使用自定义布局情况下实现自定义通知栏图标的方法。分享给大家供大家参考,具体如下:
自定义通知栏图标?不是很简单么。自定义布局都不在话下!
是的,有xml布局文件当然一切都很简单,如果不给你布局文件用呢?
听我慢慢道来!
首先怎么创建一个通知呢?
1.new 一个
代码如下:Notification n = new Notification(android.R.drawable.ic_menu_share, null, System.currentTimeMillis());
参数:图标 ID,发送到状态栏瞬间的文字,当前时间
2.设置详细信息:标题、内容、intent
PendingIntent contentIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
n.setLatestEventInfo(this, "早上好!", "今天是个晴朗的天气!", contentIntent);
3.发送到通知栏
NotificationManager mNM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNM.notify(1001, n);
这样就完成了一个通知的展示,很简单!
我们来看看 n.setLatestEventInfo 干了些什么呢
public void setLatestEventInfo(Context context,
CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) {
// TODO: rewrite this to use Builder
RemoteViews contentView = new RemoteViews(context.getPackageName(),
R.layout.notification_template_base);
if (this.icon != 0) {
contentView.setImageViewResource(R.id.icon, this.icon);
if (priority & PRIORITY_LOW) {
contentView.setInt(R.id.icon,
"setBackgroundResource", R.drawable.notification_template_icon_low_bg);
contentView.setInt(R.id.status_bar_latest_event_content,
"setBackgroundResource", R.drawable.notification_bg_low);
if (contentTitle != null) {
contentView.setTextViewText(R.id.title, contentTitle);
if (contentText != null) {
contentView.setTextViewText(R.id.text, contentText);
if (this.when != 0) {
contentView.setViewVisibility(R.id.time, View.VISIBLE);
contentView.setLong(R.id.time, "setTime", when);
if (this.number != 0) {
NumberFormat f = NumberFormat.getIntegerInstance();
contentView.setTextViewText(, f.format(this.number));
this.contentView = contentV
this.contentIntent = contentI
可以看到,他实际上就是使用系统默认布局为我们创建了一个 RemoteViews ,RemoteViews 是专门用来跨进程显示的 View ,详情参考官方文档:
代码如下:contentView.setImageViewResource(R.id.icon, this.icon);
其实就是设置图标了:
参数1:用来显示图标的 ImageView 的 id
参数2:图标 id
但是还有一个这样的方法:
代码如下:RemoteViews.setImageViewBitmap(int viewId, Bitmap bitmap)
用 Bitmap 来设置图标。
而 Notifycation 里面有个参数:Notification.contentView,仔细看,setLastestEventInfo 方法里创建的 RemoteViews 就是他,所以你知道该怎么做了!
但是这里还有一个问题?R.id.icon 怎么获取,这个东西其实在 com.android.internal.R 这个里面,但是这个类我们访问不到怎么办?
反射呗, Java 的反射可谓是万能啊,啥都可以拿到只要他在。
Class&?& clazz = Class.forName("com.android.internal.R$id");
Field field = clazz.getField("icon");
field.setAccessible(true);
int id_icon = field.getInt(null);
n.setLatestEventInfo(context, title, msg, contentIntent);
n.flags |= Notification.FLAG_AUTO_CANCEL;
if(n.contentView != null && icon != null){
n.contentView.setImageViewBitmap(id_icon, icon);
发出通知,下拉通知栏看看,图标是不是变了^_^
此外这里还有一个小细节,就是你 new Notifycation() 是传进去的图标会作为状态栏的小图标,小图标尺寸在 hdpi 下面放 32x32 的就可以
所以你可以第一次传小图标,然后通过 contentView 设置大图标,这样就OK了
希望本文所述对大家Android程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
Android自定义状态栏通知(Status Notification)的正确实现
下载积分:200
内容提示:Android自定义状态栏通知(Status Notification)的正确实现
文档格式:DOC|
浏览次数:110|
上传日期: 02:21:52|
文档星级:
该用户还上传了这些文档
Android自定义状态栏通知(Status Notification)的正确实
官方公共微信[android]JPush自定义通知栏
JPush嵌入工程
自定义通知栏
先自定义Receiver
private static final String TAG = &MyReceiver&;
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
Log.i(TAG, &JPush用户注册成功&);
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
.getAction())) {
Log.i(TAG, &接受到推送下来的自定义消息&);
receivingNotification(context, bundle);
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent
.getAction())) {
Log.i(TAG, &接受到推送下来的通知&);
} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
.getAction())) {
Log.i(TAG, &用户点击打开了通知&);
openNotification(context, bundle);
在receivingNotification()中自定义notification通知栏
private void receivingNotification(Context context, Bundle bundle) {
NotificationManager manager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
String message = bundle.getString(JPushInterface.EXTRA_MESSAGE);
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
// 使用notification
// 使用广播或者通知进行内容的显示
NotificationCompat.Builder builder = new NotificationCompat.Builder(
builder.setContentText(message).setSmallIcon(R.drawable.notification_icon_2).setContentTitle(JPushInterface.EXTRA_TITLE);
builder.setDefaults(Notification.DEFAULT_SOUND);
manager.notify(1,builder.build());
我试图更改下来通知栏里的icon,各种方法都试过,文档看了无数遍,发现这个图标是不可更改的,永远和APP程序图标一样的。。
带有下拉效果
还有一种自定义通知栏,带有下拉效果。是官网介绍的。
布局文件customer_notitfication_layout.xml
初始化通知效果
CustomPushNotificationBuilder builder = new CustomPushNotificationBuilder(
MainActivity.this, R.layout.customer_notitfication_layout,
R.id.icon, R.id.title, R.id.text);
// 指定定制的 Notification Layout
builder.statusBarDrawable = R.drawable.notification_
// 指定最顶层状态栏小图标
builder2.layoutIconDrawable = R.drawable.notification_
// 指定下拉状态栏时显示的通知图标
JPushInterface.setPushNotificationBuilder(1, builder1);
这里面有一个方法builder.statusBarDrawable,这个设置的是一个状态栏图标,不是下拉界面里那个。当来通知时,手机顶部会滚动提示一下来消息了。这里设置的图标就是刚来通知在顶部提示的,而不是上图里红框里那个。
这种带下来效果
官网提供的一种简版
还有一种简版的,也是官网demo,mark一下。设置成默认,发送通知
BasicPushNotificationBuilder builder2 = new BasicPushNotificationBuilder(
MainActivity.this);
builder2.statusBarDrawable = R.drawable.
builder2.notificationFlags = Notification.FLAG_AUTO_CANCEL; // 设置为自动消失
builder2.notificationDefaults = Notification.DEFAULT_SOUND
| Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS; // 设置为铃声与震动都要
JPushInterface.setDefaultPushNotificationBuilder(builder2);
JPushInterface.setPushNotificationBuilder(2, builder2);
setPushNotificationBuilder(2, builder2);设置builder2的样式编号为2,发送时指定编号发送。}

我要回帖

更多关于 toolbar 自定义布局 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信