首页 > 学院 > 开发设计 > 正文

跟随手指移动小球

2019-11-09 17:02:32
字体:
来源:转载
供稿:网友
1、首先自定义UI组件

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>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表