【发布时间】:2014-01-17 08:51:45
【问题描述】:
我正在开发一个应用程序,在该应用程序中我不必为notification 使用自定义布局。相反,我必须使用programmatically 为RemoteViews 创建的布局。这是我正在为布局做的事情:
Notification notify = new Notification.Builder(context)
.setContentTitle("Notification")
.setLargeIcon(
decodeBase64(NotificationImages.notification_ic_stat_notify))
.build();
LinearLayout linLayout = new LinearLayout(context);
@SuppressWarnings("deprecation")
Drawable bg = new BitmapDrawable(
decodeBase64(NotificationImages.search_bg));
linLayout.setOrientation(LinearLayout.HORIZONTAL);
linLayout.setBackground(bg);
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
linLayout.setLayoutParams(llp);
ImageView icon = new ImageView(context);
@SuppressWarnings("deprecation")
Drawable icon_bg = new BitmapDrawable(
decodeBase64(NotificationImages.notification_logo));
icon.setBackground(icon_bg);
LinearLayout.LayoutParams image_lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
image_lp.setMargins(20, 0, 0, 0);
image_lp.gravity = Gravity.CENTER_VERTICAL;
icon.setLayoutParams(image_lp);
linLayout.addView(icon);
忽略base64 解码的使用,这是我出于某种随机目的而做的。
所以,现在我想要将这个layout 添加到RemoteViews 以在notification panel 上显示它。
像这样的:
RemoteViews contentView = new RemoteViews(PACKAGE_NAME,
R.layout.persistent_notification_layout);
如何,我可以从以编程方式创建的布局中替换 layout.persistent_notification_layout 吗?
任何形式的帮助将不胜感激。
【问题讨论】:
-
这里您的 LinearLayout 和 ImageView 计数是固定的。仅出现 1 个或更多
-
是的,它是固定的,只有一个
Linear Layout。 -
那么 ImageView 呢?也是固定的吗?
-
我想做同样的事情。我正在远程视图中添加以编程方式创建的布局,但它不起作用...
标签: android android-layout android-remoteview