1、自定义类:DrawView
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;
}
}
注意:一定要有第二个构造方法,否则会报XML file line #10: Binary XML file line #10: Error inflating class com.ui.demo.custom.DrawView异常
2、对应的xml布局
<?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>
3、启动的activity
public class CustomView extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}