package com.example.customdemo;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;/** * Created by w10 on 2017/2/8. */public class DrawView extends View { public float currentX=40; public float currentY=50; //定义并创建一个画笔 Paint paint=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); //设置画笔颜色 paint.setColor(Color.RED); canvas.drawCircle(currentX,currentY,15,paint); } @Override public boolean onTouchEvent(MotionEvent event) { //修改两个属性 currentX=event.getX(); currentY=event.getY(); invalidate(); return true; }}2、将封装好的类作为一个控件在activity中使用package com.example.customdemo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.LinearLayout;public class CostomActivity extends AppCompatActivity { private LinearLayout costom; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_costom); initView(); } private void initView() { costom= (LinearLayout) findViewById(R.id.costom); final DrawView draw= new DrawView(this); draw.setMinimumWidth(300); draw.setMinimumHeight(500); }}3、布局所用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:id="@+id/costom" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.customdemo.CostomActivity"> <com.example.customdemo.DrawView android:id="@+id/drawView" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
新闻热点
疑难解答