膨胀类形状时出错

时间:2015-01-23 01:45:05

标签: android shape layout-inflater

01-23 09:07:52.570:E / AndroidRuntime(2007):android.view.InflateException:二进制XML文件行#50:错误导致类形状

我在xml文件上实现SHAPE(这是一个椭圆形)时遇到了这个错误。这有什么问题?我错过了什么吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:padding="10dp" >

     <TextView 
        android:id="@+id/recName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"    
         />



      <shape  android:shape="oval">
        <solid android:color="#9F2200"/>
        <stroke android:width="2dp" android:color="#fff" />
        <size android:width="80dp" android:height="80dp"/> </shape>


</RelativeLayout>

2 个答案:

答案 0 :(得分:6)

1)你不应该在布局文件中创建形状。

2)你必须创建shape文件作为drawable文件夹的一部分。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:padding="10dp" >
     <TextView 
        android:id="@+id/recName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@drawable/customdrawable"
         />
</RelativeLayout>

右键单击Drawable文件夹并在drawable文件夹中创建一个新的android xml:

<shape  android:shape="oval">
        <solid android:color="#9F2200"/>
        <stroke android:width="2dp" android:color="#fff" />
        <size android:width="80dp" android:height="80dp"/> </shape>

使用customdrawable.xml名称保存此文件

答案 1 :(得分:2)

形状是Drawable而不是View

您要做的是创建一个单独的可绘制XML文件。在您的布局中使用ImageView并将背景设置为您创建的可绘制文件。