在代码中创建自定义扩展视图

时间:2011-03-28 17:59:11

标签: java android android-layout notifications

我想自定义通知区域,在右侧和几个按钮上添加一个图标。 我在这里阅读了教程:http://developer.android.com/guide/topics/ui/notifiers/notifications.html

问题是我需要将此代码包含在库中,我想分发一个SDK来改进通知。 (见http://hub.buzzbox.com/

是否可以在代码中编写所有UI,而无需使用xml来描述远程视图?这是因为资源不能包含在SDK中,所以我需要让我的SDK用户在他们的资源中添加一个xml,并按名称引用所有资源......我想避免这样做。 我已经完全用Java代码编写了SDK用户界面的其他部分,但我对删除视图也有同样的问题。

RemoteView通常是这样创建的:

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);

我可以使用Java代码从I布局创建RemoteView吗? 还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用自己的Parcel执行此操作,但查看代码时,Parcel只会存储主构造函数使用的包名称和布局(资源)ID。

public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(mPackage);
    dest.writeInt(mLayoutId);
    int count;
    if (mActions != null) {
        count = mActions.size();
    } else {
        count = 0;
    }
    dest.writeInt(count);
    for (int i=0; i<count; i++) {
        Action a = mActions.get(i);
        a.writeToParcel(dest, 0);
    }
}

我看不出这样做的方法,并认为这可能是不可能的。

相关问题