我的目标是针对1.6版本,但是如果用户使用3.0以上设备,我想有一个可以使用堆栈视图和其他Android SDK改进的漂亮小部件。而在1.6-2.3版本上则需要一个简单的小部件。
如何创建这两个版本的小部件呢?
非常感谢。
如何创建这两个版本的小部件呢?
非常感谢。
我的建议:
创建两个版本的应用小部件,并使用资源值方法来启用/禁用。
在res/values/bools.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="atLeastHoneycomb">false</bool>
<bool name="notHoneycomb">true</bool>
</resources>
在 res/values-v11/bools.xml 文件中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="atLeastHoneycomb">true</bool>
<bool name="notHoneycomb">false</bool>
</resources>
在AndroidManifest.xml文件中:
<receiver android:name="MyOldAppWidgetProvider"
android:enabled="@bool/notHoneycomb">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_oldappwidget_info" />
</receiver>
<receiver android:name="MyNewAppWidgetProvider"
android:enabled="@bool/atLeastHoneycomb">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/example_newappwidget_info" />
</receiver>
res
目录中添加后缀,例如-v11
,以使子文件夹与API级别相关联。main.xml
。您可以将1.6-2.3版本的main.xml
文件放在layout
文件夹中,然后将包含新小部件的新main.xml
文件放在layout-v11
文件夹中。使用Honeycomb及更高版本时,将选择-v11
文件夹中的布局文件,当您像R.layout.main
这样引用文件时。int apiLevel = android.os.Build.VERSION.SDK_INT;