Android学习笔记进阶之在图片上涂鸦(能清屏)
来源:互联网 发布:程序员培训 编辑:程序博客网 时间:2024/05/19 17:04
HandWritingActivity.java
- package xiaosi.handWriting;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class HandWritingActivity extends Activity
- {
- /** Called when the activity is first created. */
- private HandWrite handWrite = null;
- private Button clear = null;
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- handWrite = (HandWrite)findViewById(R.id.handwriteview);
- clear = (Button)findViewById(R.id.clear);
- clear.setOnClickListener(new clearListener());
- }
- private class clearListener implements OnClickListener{
- public void onClick(View v)
- {
- handWrite.clear();
- }
- }
- }
HandWrite.java
- public class HandWrite extends View
- {
- private Paint paint = null;
- private Bitmap originalBitmap = null;
- private Bitmap new1Bitmap = null;
- private Bitmap new2Bitmap = null;
- private float clickX = 0,clickY = 0;
- private float startX = 0,startY = 0;
- private boolean isMove = true;
- private boolean isClear = false;
- private int color = Color.GREEN;
- private float strokeWidth = 2.0f;
- public HandWrite(Context context, AttributeSet attrs)
- {
- super(context, attrs);
- originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.girl_a);
- new1Bitmap = Bitmap.createBitmap(originalBitmap);
- }
- public void clear(){
- isClear = true;
- new2Bitmap = Bitmap.createBitmap(originalBitmap);
- invalidate();
- }
- public void setstyle(float strokeWidth){
- this.strokeWidth = strokeWidth;
- }
- @Override
- protected void onDraw(Canvas canvas)
- {
- super.onDraw(canvas);
- canvas.drawBitmap(HandWriting(new1Bitmap), 0, 0,null);
- }
- public Bitmap HandWriting(Bitmap originalBitmap)
- {
- Canvas canvas = null;
- if(isClear){
- canvas = new Canvas(new2Bitmap);
- }
- else{
- canvas = new Canvas(originalBitmap);
- }
- paint = new Paint();
- paint.setStyle(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 new2Bitmap;
- }
- return originalBitmap;
- }
- @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);
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <xiaosi.handWriting.HandWrite
- android:id="@+id/handwriteview"
- android:layout_width="fill_parent"
- android:layout_height="380dp" />
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_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>
0 0
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- android实现涂鸦,保存涂鸦后的图片,清屏
- android实现涂鸦,保存涂鸦后的图片,清屏
- android 在图片上涂鸦(添加水印同理)
- Android学习笔记进阶19之给图片加边框
- Android学习笔记进阶20之得到图片的缩略图
- Android学习笔记进阶20之得到图片的缩略图
- Android学习笔记进阶20之得到图片的缩略图
- Android学习笔记进阶19之给图片加边框
- Android学习笔记进阶20之得到图片的缩略图
- Android学习笔记进阶19之给图片加边框
- Android学习笔记之在图片特效
- android 实现在照片上涂鸦
- android:在照片上绘制涂鸦
- Android在ImageView上做一些涂鸦
- vi/vim基本使用方法
- 2014年4月操作系统份额:Windows XP仍然在26%以上,Linux微涨
- android launcher
- java的(PO,VO,TO,BO,DAO,POJO)类名包名解释
- 【OpenCV】图像几何变换:旋转,缩放,斜切
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- 分析手游中高付费人群--手游土豪
- 166M"巨"作来袭 免商铺流量"双免"轻松hold住
- 关于cvCreateFileCapture()读取视频文件失败的解决记录
- Myeclipse maven创建webapp
- sql server 2008 不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法
- linux 下搭建java web环境
- iOS7—Day by day—Day9:Device Identification
- Word Ladder----leetcode