几天前谷歌推出了Preference Support Library(Link).我刚刚尝试在我的应用程序中实现它,虽然看起来它不能用于SwitchPreferences哪个是奇怪的,因为谷歌表示我们可以使用与以前相同的XML文件,并且明确表示SwitchPreferences现在可用于所有API 7+设备.
报价(来源)
[...]并使用相同的首选XML文件(http://goo.gl/wOcIxI)添加首选项,同时向所有API 7+设备添加对SwitchPreference等元素(以前仅在API 14+设备上可用)的支持.[...]
错误信息
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.package/com.my.package.Main}: android.view.InflateException: Binary XML file line #4: Error inflating class (not found)SwitchPreference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)
相关部分显然是Binary XML file line #4: Error inflating class (not found)SwitchPreference.
Java代码
public class FragmentSettings extends PreferenceFragmentCompat {
@Override
public …Run Code Online (Sandbox Code Playgroud) android android-preferences android-support-library android-switch
Google地图提供了几个月的功能,可以下载某个地理区域供以后离线使用.我在我的应用程序中使用谷歌地图Android API,我发现在离线时,与真正的谷歌地图应用程序相比,我无法完全放大我的应用程序中的街道级别,因此可能不会使用下载的数据.
有没有办法让我的应用程序使用它?
我正在使用谷歌地图,里面实现了聚类标记.但是,我的标记已被用户的当前位置图标覆盖,如下图所示
这是我的代码:
protected void onBeforeClusterRendered(Cluster<CurationLocation> cluster, MarkerOptions markerOptions) {
if (isAdded()) {
final Drawable clusterIcon = getResources().getDrawable(R.drawable.oval_bg);
mClusterIconGenerator.setBackground(clusterIcon);
mClusterIconGenerator.setTextAppearance(R.style.AppTheme_WhiteTextAppearance);
LayoutInflater myInflater = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View clusterView = myInflater.inflate(R.layout.customize_cluster_layout, null, false);
mClusterIconGenerator.setContentView(clusterView);
final Bitmap icon = mClusterIconGenerator.makeIcon(String.valueOf(cluster.getSize()));
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon));
} else {
return;
}
}
Run Code Online (Sandbox Code Playgroud)
这是XML部分:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:weightSum="1">
<TextView
android:id="@+id/text"
android:layout_width="30dp"
android:layout_height="40dp"
android:background="@drawable/icon_location_clustering"
android:gravity="center_horizontal"
android:paddingTop="5dp"
android:text="33"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#000000"
android:textSize="13sp" />
Run Code Online (Sandbox Code Playgroud)
我希望我的标记应覆盖用户的当前位置图标.有谁能够帮我?
android google-maps markerclusterer google-maps-android-api-2