Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用xml的glowpadview问题_Java_Android_Xml - Fatal编程技术网

Java 使用xml的glowpadview问题

Java 使用xml的glowpadview问题,java,android,xml,Java,Android,Xml,我在XML布局文件中遇到了glowpadview问题 我的布局代码是: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:glowpad="http://schemas.android.com/apk/com.fima.glowpadview" android:layout_width=

我在XML布局文件中遇到了glowpadview问题

我的布局代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:glowpad="http://schemas.android.com/apk/com.fima.glowpadview"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<com.fima.glowpadview.GlowPadView
    android:id="@+id/glow_pad_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_vertical"
    android:layout_marginBottom="@dimen/glowpadview_margin_bottom"
    android:focusable="true"
    android:gravity="center"
    glowpad:directionDescriptions="@array/snooze_dismiss_direction_descriptions"
    glowpad:feedbackCount="1"
    glowpad:glowRadius="@dimen/glowpadview_glow_radius"
    glowpad:handleDrawable="@drawable/ic_alarm_alert_touch_handle"
    glowpad:innerRadius="@dimen/glowpadview_inner_radius"
    glowpad:outerRadius="@dimen/glowpadview_target_placement_radius"
    glowpad:outerRingDrawable="@drawable/ic_alarm_alert_outerring"
    glowpad:pointDrawable="@drawable/ic_lockscreen_glowdot"
    glowpad:snapMargin="@dimen/glowpadview_snap_margin"
    glowpad:targetDescriptions="@array/snooze_dismiss_descriptions"
    glowpad:targetDrawables="@array/snooze_dismiss_drawables"
    glowpad:vibrationDuration="20" />

我得到以下错误:

The following classes could not be instantiated:

- com.fima.glowpadview.GlowPadView (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse

java.lang.IllegalStateException: Must specify at least one target drawable
    at com.fima.glowpadview.GlowPadView.<init>(GlowPadView.java:247)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(    at sun.reflect.NativeConstructorAccessorImpl.newInstance(    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(    at java.lang.reflect.Constructor.newInstance(    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:442)
    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:194)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:206)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:131)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:756)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:728)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:373)
无法实例化以下类:
-com.fima.glowpadview.glowpadview(打开类,显示错误日志)
有关详细信息,请参阅错误日志(窗口>显示视图)。
提示:在自定义视图中使用View.isInEditMode()可以在Eclipse中显示时跳过代码
java.lang.IllegalStateException:必须至少指定一个可绘制的目标
在com.fima.glowpadview.glowpadview.(glowpadview.java:247)
位于sun.reflect.nativeconstructoraccessormpl.newInstance0(位于sun.reflect.nativeconstructoraccessormpl.newInstance(位于sun.reflect.DelegatingConstructorAccessorImpl.newInstance)(位于java.lang.reflect.Constructor.newInstance(位于com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instanceClass(ProjectCallback.java:442))
位于com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:194)
在android.view.BridgeInflater.loadCustomView(BridgeInflater.java:206)中
在android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:131)中
位于android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:756)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:64)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:728)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:373)

如何解决此问题?

有一个属性是:
glowpad:targetDrawables
,它会导致问题,除了提供至少一个有效的targetDrawables之外,还必须定义此属性

正如我看到的,您已经定义了它:
glowpad:targetDrawables=“@array/snooze\u disease\u drawables”
,所以问题出在文件
snooze\u disease\u drawables
中,我相信它肯定包含所有空值,如下所示:

<array name="snooze_dismiss_drawables">
    <item>@null</item>
    <item>@null</item>
    <item>@null</item>
    <item>@null</item>
</array>

@空的
@空的
@空的
@空的
因此,要使一切正常工作,请在四个方向中的任何一个方向上定义至少一个有效的可绘制图形,以便GlowPad能够正常工作。如果您希望它没有可见的可绘制图形,则可以明确定义一个透明的可绘制图形,并且它也可以正常工作,例如:

<array name="snooze_dismiss_drawables">
    <item>@android:color/transparent</item>
    <item>@null</item>
    <item>@android:color/transparent</item>
    <item>@null</item>
</array>

@android:彩色/透明
@空的
@android:彩色/透明
@空的

请有人帮帮我