zoukankan      html  css  js  c++  java
  • 自定义View实现跟随手指的小球

    package com.pingyijinren.test;
    
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.view.View;
    
    /**
     * Created by Administrator on 2016/5/21 0021.
     */
    public class DrawView extends View {
        private float x=100;
        private float y=100;
        public DrawView(Context context){
            super(context);
        }   //自定义View时,必须实现View的三个构造函数
    
        public DrawView(Context context, AttributeSet attrs){
            super(context,attrs);
        }
    
        public DrawView(Context context, AttributeSet attrs, int defStyle){
            super(context,attrs,defStyle);
        }
    
        @Override
        public void onDraw(Canvas canvas){  //onDraw不是必需的,按需重写即可
            super.onDraw(canvas);
            Paint paint=new Paint();
            paint.setColor(Color.RED);
            canvas.drawCircle(x,y,100,paint);
        }
    
        public void setX(float x){
            this.x=x;
        }
    
        public void setY(float y){
            this.y=y;
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 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"
        tools:context="com.pingyijinren.test.MainActivity">
    
        <com.pingyijinren.test.DrawView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/drawView"/>
    </RelativeLayout>
    package com.pingyijinren.test;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
        private DrawView drawView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            try{
                setContentView(R.layout.activity_main);
            }
            catch(Exception e){
                e.printStackTrace();
                Log.d("MainActivity",e.getMessage());
            }
    
            drawView=(DrawView)findViewById(R.id.drawView);
            drawView.setOnTouchListener(new View.OnTouchListener() {    //drawView响应屏幕触摸事件
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    drawView.setX(event.getX());
                    drawView.setY(event.getY());
                    drawView.invalidate();
                    return true;
                }
            });
        }
    }
  • 相关阅读:
    Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据
    【转载】Python字符串操作之字符串分割与组合
    【转】Python判断字符串是否为字母或者数字
    Appium 在测试android混合应用时,关于webview页面切换的那些事儿
    使用pip install XX 命令时报错
    Appium笔记(二) 丶Appium的安装
    Android SDK的下载与安装
    KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
    最先进的开源游戏引擎KlayGE 4.4发布
    KlayGE 4.4中渲染的改进(四):SSSSS
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/5514389.html
Copyright © 2011-2022 走看看