问题: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; } }加上注释掉的构造方法就没有问题了。