Java 无法在Android 2.2上实现全面列表视图

Java 无法在Android 2.2上实现全面列表视图,java,android,exception,listview,drawable,Java,Android,Exception,Listview,Drawable,我有一个自定义的可绘制rounded_corner.xml: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#F

我有一个自定义的可绘制rounded_corner.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient android:startColor="#FFFFFF" android:endColor="#FFFFFF" 
            android:angle="90"/> 

    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
</shape> 
但我得到了一个错误:

5-09 20:39:17.434: ERROR/AndroidRuntime(1299): FATAL EXCEPTION: main
05-09 20:39:17.434: ERROR/AndroidRuntime(1299): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.stocktwits.activity/org.stocktwits.activity.WatchlistActivity}: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/rounded_corner.xml from drawable resource ID #0x7f02000d
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.view.View.performClick(View.java:2408)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.view.View$PerformClick.run(View.java:8816)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.os.Handler.handleCallback(Handler.java:587)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.os.Looper.loop(Looper.java:123)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at java.lang.reflect.Method.invokeNative(Native Method)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at java.lang.reflect.Method.invoke(Method.java:521)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at dalvik.system.NativeStart.main(Native Method)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299): Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/rounded_corner.xml from drawable resource ID #0x7f02000d
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.content.res.Resources.loadDrawable(Resources.java:1697)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.content.res.Resources.getDrawable(Resources.java:581)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.view.View.setBackgroundResource(View.java:7393)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at org.stocktwits.activity.WatchlistActivity.setupUI(WatchlistActivity.java:184)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at org.stocktwits.activity.WatchlistActivity.onCreate(WatchlistActivity.java:127)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     ... 18 more
05-09 20:39:17.434: ERROR/AndroidRuntime(1299): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #4<gradient> tag requires 'angle' attribute to be a multiple of 45
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:678)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:788)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:729)
05-09 20:39:17.434: ERROR/AndroidRuntime(1299):     at android.content.res.Resources.loadDrawable(Resources.java:1694)
5-09 20:39:17.434:错误/AndroidRuntime(1299):致命异常:main
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):java.lang.RuntimeException:无法启动活动组件信息{org.stocktwits.activity/org.stocktwits.activity.WatchlistActivity}:android.content.res.Resources$NotFoundException:文件res/drawable hdpi/rounded_corner.xml来自可绘制资源ID#0x7f02000d
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.view.view.performClick(view.java:2408)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.view.view$PerformClick.run(view.java:8816)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.os.Handler.handleCallback(Handler.java:587)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.os.Handler.dispatchMessage(Handler.java:92)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.os.Looper.loop(Looper.java:123)上
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.app.ActivityThread.main(ActivityThread.java:4627)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于java.lang.reflect.Method.invokenactive(本机方法)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于java.lang.reflect.Method.invoke(Method.java:521)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在dalvik.system.NativeStart.main(本机方法)
05-09 20:39:17.434:错误/AndroidRuntime(1299):由以下原因引起:android.content.res.Resources$NotFoundException:文件res/drawable hdpi/rounded_corner.xml来自可绘图资源ID#0x7f02000d
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.content.res.Resources.loadDrawable(Resources.java:1697)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于android.content.res.Resources.getDrawable(Resources.java:581)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.view.view.setBackgroundResource(view.java:7393)上
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于org.stocktwits.activity.WatchlistActivity.setupUI(WatchlistActivity.java:184)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):位于org.stocktwits.activity.WatchlistActivity.onCreate(WatchlistActivity.java:127)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-09 20:39:17.434:错误/AndroidRuntime(1299):。。。还有18个
05-09 20:39:17.434:错误/AndroidRuntime(1299):由以下原因引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#4标记要求“angle”属性为45的倍数
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:678)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.graphics.drawable.drawable.createFromXmlInner(drawable.java:788)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.graphics.drawable.drawable.createFromXml(drawable.java:729)
05-09 20:39:17.434:ERROR/AndroidRuntime(1299):在android.content.res.Resources.loadDrawable(Resources.java:1694)
我如何诊断这个?资源已存在。

查看堆栈跟踪的“原因”部分: 二进制XML文件第4行标记要求“angle”属性为45的倍数 角点:radius=“7dp”
而不是
角点android:bottomRightRadius=“7dp”android:bottomLeftRadius=“7dp” android:topLeftRadius=“7dp”android:topRightRadius=“7dp”
将此.xml文件放在drawable文件夹中,然后尝试使用

setBackgroundDrawable(drawable rounded_corner.xml)

下面是我如何在列表周围添加圆形边框的

<ListView android:layout_width="fill_parent" android:id="@id/android:list"
 android:layout_height="0dip" android:layout_weight="1.0"
 android:background="@drawable/app_user_list_drawable" android:fadeScrollbars="true"
 android:descendantFocusability="afterDescendants"  android:layout_margin="10dip"
 android:listSelector="@android:color/transparent" android:paddingLeft="10dip"
 android:paddingRight="10dip" android:divider="#7D7D7D" android:dividerHeight="1px"/>

app\u user\u list\u drawable.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="1dip" android:right="0dip"
 android:bottom="1dip"/>
<stroke android:width="1dip" android:color="#7D7D7D"/>
</shape>


这在我的列表周围创建了一个简单的带圆边的白色边框。listview中的填充是为了留出一点空间,或者在添加行时会显得笨拙

谢谢。我把它改为90,但仍然得到了一个XMLPullParserException。用新的XML和新的stacktrace更新了我的问题。只是为了消除最明显的东西;编辑后你保存了这个文件吗?是的,它存在于可绘制的HDPit中。这非常令人费解。的注释表明,其他人已通过将角度更改为45的倍数来解决您的确切问题。请注意,如果您指定一个“简单”(不是选择器)可绘制作为背景,则当您使用轨迹球/dpad导航时,当您按下它时,当您长按它时,它不会改变,等等,在走下这条路径之前考虑所有的缺点(或者提供所有其他的状态)。
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="1dip" android:right="0dip"
 android:bottom="1dip"/>
<stroke android:width="1dip" android:color="#7D7D7D"/>
</shape>