問題: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;
}
}
加上註釋掉的構造方法就沒有問題了。