<?xml version="1.0" encoding="utf-8"?> <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent" android:layout_width="match_parent"
android:orientation="vertical" > <com.example.ex4_5.HandWrite
android:id="@+id/hand" android:layout_height="280dp"
android:layout_width="match_parent" /> <LinearLayout
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:gravity="center_horizontal" > <Button
android:id="@+id/clear" android:layout_width="200dp"
android:layout_height="wrap_content" android:text="清屏" /> </LinearLayout>
</LinearLayout> package com.example.ex4_5; import android.app.Activity; import
android.os.Bundle; import android.view.View; import
android.view.View.OnClickListener; import android.widget.Button; public class
MainActivity extends Activity { private HandWrite handWrite=null; private
Button clear =null; @Override protected void onCreate(Bundle
savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handWrite=(HandWrite)findViewById(R.id.hand);
clear=(Button)findViewById(R.id.clear); clear.setOnClickListener(new mClick());
} public class mClick implements OnClickListener{ public void onClick(View v){
handWrite.clear(); } } } package com.example.ex4_5; import
android.content.Context; import android.graphics.Bitmap; import
android.graphics.BitmapFactory; import android.graphics.Canvas; import
android.graphics.Color; import android.graphics.Paint; import
android.util.AttributeSet; import android.view.MotionEvent; import
android.view.View; public class HandWrite extends View { Paint paint=null;
Bitmap originalBitmap=null; Bitmap new1_Bitmap=null; Bitmap new2_Bitmap=null;
float startX=0,startY=0; float clickX=0,clickY=0; boolean isMove=true; boolean
isClear=false; int color= Color.GREEN; float strokeWidth=2.0f; public
HandWrite(Context context, AttributeSet attrs){ super(context,attrs);
originalBitmap=
BitmapFactory.decodeResource(getResources(),R.drawable.icon2).copy(Bitmap.Config.ARGB_8888,true);
new1_Bitmap=Bitmap.createBitmap(originalBitmap); } public void clear(){
isClear=true; new2_Bitmap=Bitmap.createBitmap(originalBitmap); invalidate(); }
public void setstyle(float strokeWidth){ this.strokeWidth=strokeWidth; }
@Override protected void onDraw(Canvas canvas){ super.onDraw(canvas);
canvas.drawBitmap(HandWriting(new1_Bitmap),0,0,null); } public Bitmap
HandWriting(Bitmap o_Bitmap){ Canvas canvas=null; if(isClear){ canvas=new
Canvas(new2_Bitmap); }else { canvas=new Canvas(o_Bitmap); } paint=new Paint();
paint.setStyle(Paint.Style.STROKE); paint.setAntiAlias(true);
paint.setColor(color); paint.setStrokeWidth(strokeWidth); if(isMove){
canvas.drawLine(startX,startY,clickX,clickY,paint); } startX=clickX;
startY=clickY; if(isClear){ return new2_Bitmap; } return o_Bitmap; } @Override
public boolean onTouchEvent(MotionEvent event){ clickX=event.getX();
clickY=event.getY(); if(event.getAction()==MotionEvent.ACTION_DOWN){
isMove=false; invalidate(); return true; }else
if(event.getAction()==MotionEvent.ACTION_MOVE){ isMove=true; invalidate();
return true; } return super.onTouchEvent(event); } }
 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信