1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Android 涂鸦板(简易版)

Android 涂鸦板(简易版)

时间:2019-05-11 03:10:23

相关推荐

Android 涂鸦板(简易版)

源码:

FruitBackgound.java

package com.example.administrator.myapplication.XiaoDabao;import android.animation.ObjectAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PaintFlagsDrawFilter;import android.graphics.Path;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.example.administrator.myapplication.R;import java.util.ArrayList;import java.util.List;public class FruitBackGround extends View{private static final int isChanged = 1;private List<Path> paths = new ArrayList<>();float fromX = 0f;float fromY = 0f;float toX = 0f;float toY = 0f;float tempX = 0f;float tempY = 0f;private static final Paint mPaint = new Paint();private Path mPath = new Path();public FruitBackGround(Context context) {super(context);init();}public FruitBackGround(Context context, @Nullable AttributeSet attrs) {super(context, attrs);init();}public FruitBackGround(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}//核心事件@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()){case MotionEvent.ACTION_DOWN:{fromX = event.getX();fromY = event.getY();mPath.moveTo(fromX,fromY);if(fromX > 0&& fromX<=300 && fromY>0 && fromY<=300){mPath = new Path();invalidate();return true;}invalidate();tempX = fromX;tempY = fromY;break;}case MotionEvent.ACTION_MOVE:{toX = event.getX();toY = event.getY();if(fromX > 0&& fromX<=300 && fromY>0 && fromY<=300){mPath = new Path();invalidate();return true;}mPath.quadTo(tempX,tempY,toX,toY);invalidate();tempX = toX;tempY = toY;break;}case MotionEvent.ACTION_UP:{mPath = new Path();break;}}return true;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);drawPath(canvas);}private void drawPath(final Canvas canvas) {if(mPath != null && !mPath.isEmpty()){canvas.drawPath(mPath,mPaint);}}private void init(){mPaint.setColor(Color.RED);mPaint.setStyle(Paint.Style.STROKE);mPaint.setStrokeWidth(30f);mPaint.setAntiAlias(true);}public void clear(){mPath = new Path();invalidate();}}

FruitActivity.java

package com.example.administrator.myapplication.XiaoDabao;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Display;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.example.administrator.myapplication.R;public class FruitActivity extends AppCompatActivity {private Button clear;private FruitBackGround myView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_fruit);initView();}private void initView(){Display defaultDisplay = getWindowManager().getDefaultDisplay();int screenWidth = defaultDisplay.getWidth();int screenHeight = defaultDisplay.getHeight();myView = findViewById(R.id.myview);// this.addContentView(drawableView);clear = findViewById(R.id.clear);clear.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {myView.clear();Toast.makeText(getApplicationContext(),"清空",Toast.LENGTH_SHORT).show();}});}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。