RemoteViews(String packageName, int layoutId)创建一个新的 RemoteViews 对象,该对象将表现指定布局文件中包罗的视图。RemoteViews(String packageName, int layoutId, int viewId)创建一个新的 RemoteViews 对象,该对象将表现指定布局文件中包罗的视图,并将根视图的 ID 更改为指定的 id。RemoteViews(RemoteViews landscape, RemoteViews portrait)创建一个新的 RemoteViews 对象,该对象将添补为指定的横向或纵向 RemoteViews,详细取决于当前设置。RemoteViews(Map<SizeF, RemoteViews> remoteViews)创建一个新的 RemoteViews 对象,该对象将使用最靠近的巨细规范来膨胀布局。RemoteViews(RemoteViews src)基于RemoteViews创建一个副本。
设定笔墨
void setTextViewText(@IdRes int viewId, CharSequence text)相称于TextVIew.setText(),setTextViewText内部使用了setCharSequence,以是实在也可以调用setCharSequence来完成设定笔墨的操作。
public void setTextViewText(@IdRes int viewId, CharSequence text) { setCharSequence(viewId, "setText", text);}
设定字体颜色
void setTextColor(@IdRes int viewId, @ColorInt int color)void setInt(viewId, "setTextColor", color);
设定字体巨细
void setTextViewTextSize(@IdRes int viewId, int units, float size)
设定图片
void setImageViewResource(@IdRes int viewId, @DrawableRes int srcId)void setInt(viewId, "setImageResource", srcId);void setImageViewUri(@IdRes int viewId, Uri uri)void setUri(viewId, "setImageURI", uri);void setImageViewBitmap(@IdRes int viewId, Bitmap bitmap)void setBitmap(viewId, "setImageBitmap", bitmap);void setImageViewIcon(@IdRes int viewId, Icon icon)void setIcon(viewId, "setImageIcon", icon);
设定单个控件的点击事件
void setOnClickPendingIntent(@IdRes int viewId, PendingIntent pendingIntent)void setOnClickResponse(@IdRes int viewId, @NonNull RemoteResponse response) val url = "http://www.baidu.com"val intent = Intent(Intent.ACTION_VIEW)intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)intent.data = Uri.parse(url)val pending = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_MUTABLE)views.setOnClickPendingIntent(R.id.appwidget_text, pending)appWidgetManager.updateAppWidget(appWidgetId, views)
设定ProgressBar
void setProgressBar(@IdRes int viewId, int max, int progress, boolean indeterminate)大概使用
setBoolean(viewId, "setIndeterminate", indeterminate);if (!indeterminate) { setInt(viewId, "setMax", max); setInt(viewId, "setProgress", progress);}
调解RemoteViews的布局属性
void setViewLayoutMargin(@IdRes int viewId, @MarginType int type, float value, @ComplexDimensionUnit int units)void setViewLayoutHeight(@IdRes int viewId, float height, @ComplexDimensionUnit int units)void setViewLayoutWidth(@IdRes int viewId, float width, @ComplexDimensionUnit int units)以上就是常用的一些方法,更多API,请参考官方文档:RemoteViews | Android Developers
6. Widget 进阶用法