che*_*ang 6 android android-widget android-3.0-honeycomb
我的目标是1.6,但我希望有一个漂亮的小部件可以使用stackview和Android SDK为小部件提供的其他改进,如果用户在3.0以上设备上.和1.6-2.3上的普通小部件/
我该怎么做两个版本的小部件?
非常感谢
dag*_*pin 13
我的建议:
创建应用程序窗口小部件的两个版本,并使用资源值方法启用/禁用.
在res/values/bools.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="atLeastHoneycomb">false</bool>
<bool name="notHoneycomb">true</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
在res/values-v11/bools.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="atLeastHoneycomb">true</bool>
<bool name="notHoneycomb">false</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
在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>
Run Code Online (Sandbox Code Playgroud)
您可以res通过添加后缀来在目录API级别中创建子文件夹-v11.
例如,假设您的布局被调用main.xml.您可以将1.6 - 2.3 main.xml文件放在该layout文件夹中,然后将main.xml包含新窗口小部件的新layout-v11文件放在该文件夹中.使用Honeycomb及更高版本时,-v11当您引用文件时,将选择文件夹中的布局R.layout.main.
从那里,您可以在活动中使用一些逻辑来检查新窗口小部件对象的存在(或者只检查Build.VERSION类)并相应地进行分支.
有关此问题的更多详细信息,请查看Android文档中的限定符名称规则.
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |