我一直面临一个非常奇怪的问题。我看不到我设计的 UI 的预览。我正在尝试将视图的背景设置为定义的渐变。我不知道是什么导致了问题。这是 UI xml 和 Gradient xml 的代码。
渐变 XML,vertical_fade.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
android:shape="line" xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:startColor="#ffffff"
android:centerColor="#000000"
android:endColor="#ffffff"
android:angle="270"/>
</shape>
和 UI xml 的代码,这个 xml 是列表行的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fadingEdgeLength="5dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingRight="?android:attr/scrollbarSize" >
<ImageView
android:id="@+id/contact_type_icon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/call"
android:layout_margin="2dp"
/>
<View
android:id="@+id/type_divider"
android:layout_width="3dp"
android:layout_height="fill_parent"
android:background="@drawable/vertical_fade"
android:layout_marginLeft="3dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="4dp"
android:layout_weight="6">
<TextView
android:id="@+id/detail_type"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Detail_Type" />
<TextView
android:id="@+id/detail_detail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:text="Detail_Detail" />
</LinearLayout>
<LinearLayout
android:gravity="right"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1">
<View
android:id="@+id/type_divider_secondary"
android:layout_width="3dp"
android:layout_height="fill_parent"
android:background="@drawable/vertical_fade"
android:layout_marginRight="3dp"
/>
<ImageView
android:id="@+id/second_action"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/sms"
android:layout_gravity="right"
android:layout_margin="2dp" />
</LinearLayout>
</LinearLayout>
在 UI 中,使用的两个视图是我收到错误的点。
好吧,LogCat 说
03-05 23:47:42.886: E/AndroidRuntime(717): java.lang.NullPointerException
03-05 23:47:42.886: E/AndroidRuntime(717): at android.graphics.Canvas.drawLine(Canvas.java:809)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.graphics.drawable.GradientDrawable.draw(GradientDrawable.java:349)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.View.draw(View.java:6865)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1480)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.widget.ListView.dispatchDraw(ListView.java:3138)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.View.draw(View.java:6986)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.widget.AbsListView.draw(AbsListView.java:2584)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.View.draw(View.java:6883)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.widget.FrameLayout.draw(FrameLayout.java:357)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.View.draw(View.java:6883)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.widget.FrameLayout.draw(FrameLayout.java:357)
03-05 23:47:42.886: E/AndroidRuntime(717): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1862)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewRoot.draw(ViewRoot.java:1522)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewRoot.performTraversals(ViewRoot.java:1258)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.os.Handler.dispatchMessage(Handler.java:99)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.os.Looper.loop(Looper.java:123)
03-05 23:47:42.886: E/AndroidRuntime(717): at android.app.ActivityThread.main(ActivityThread.java:3683)
03-05 23:47:42.886: E/AndroidRuntime(717): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 23:47:42.886: E/AndroidRuntime(717): at java.lang.reflect.Method.invoke(Method.java:507)
03-05 23:47:42.886: E/AndroidRuntime(717): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-05 23:47:42.886: E/AndroidRuntime(717): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-05 23:47:42.886: E/AndroidRuntime(717): at dalvik.system.NativeStart.main(Native Method)