XML file line #10: Binary XML file line #10: Error inflating class com.ui.demo.custom.DrawView

来源:互联网 发布:淘宝直播买翡翠 编辑:程序博客网 时间:2024/05/18 21:07

问题:xml中使用自定义的类的时候,出现了XML file line #10: Binary XML file line #10: Error inflating class com.ui.demo.custom.DrawView异常。

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.ui.demo.custom.CustomView"> <com.ui.demo.custom.DrawView    android:id="@+id/test"     android:layout_width="match_parent"     android:layout_height="match_parent"/></LinearLayout>

经过检查发现是因为再DrawView类中构造方法的问题

package com.ui.demo.custom;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.view.MotionEvent;import android.view.View;/** * <p> * Description: * </p> * * @author dailei * @version V1.0.0 * @className DrawView * @date 2016/6/7 */public class DrawView extends View{    public float currentX = 40;    public float currentY = 50;    Paint p = new Paint();    public DrawView(Context context)    {        super(context);    }//    public DrawView(Context context, AttributeSet attrs)//    {//        super(context, attrs);////    }    @Override    protected void onDraw(Canvas canvas)    {        super.onDraw(canvas);        p.setColor(Color.RED);        canvas.drawCircle(currentX,currentY,15,p);    }    @Override public boolean onTouchEvent(MotionEvent event)    {        currentX = event.getX();        currentY = event.getY();        invalidate();  //通知当前组件重新绘自己        return true;    }}

加上注释掉的构造方法就没有问题了。

2 0