package com.example.testimg;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private Button butt;
private View view;
private LinearLayout mylayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main );
LayoutInflater inflater = LayoutInflater.from(this);
view=inflater.inflate(R.layout.main, null);
mylayout=(LinearLayout) view.findViewById(R.id.layout);
butt=(Button)view.findViewById(R.id.butt);
getSDPath();
//TouchView img=new TouchView(MainActivity.this, 500, 500);
DragImageView img=new DragImageView(MainActivity.this);
File f=new File(this.getSDPath()+File.separator+"07.jpg");
System.out.println(f.getName());
Bitmap bitmap=null;
try {
bitmap=BitmapFactory.decodeStream(new FileInputStream(f));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
img.setImageBitmap(bitmap);
mylayout.removeAllViews();
mylayout.addView(img);
setContentView(view);
butt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
File f=new File(MainActivity.this.getSDPath()+File.separator+"07.jpg");
Bitmap bitmap=null;
try {
bitmap=BitmapFactory.decodeStream(new FileInputStream(f)).copy(Bitmap.Config.ARGB_8888, true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HandWrite img2=new HandWrite(MainActivity.this, bitmap);
//img2.setImageBitmap(bitmap);
mylayout.removeAllViews();
mylayout.addView(img2);
setContentView(view);
}
});
}
public String getSDPath(){
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在
String sdpath=null;
if (sdCardExist)
{
//sdDir = Environment.getExternalStorageDirectory();//获取跟目录
sdpath=Environment.getExternalStorageDirectory().getPath();
System.out.println(Environment.getExternalStorageDirectory().getPath());
// sdDir1 = Environment.getDataDirectory();
// sdDir2 =Environment.getRootDirectory();
}
return sdpath;
//System.out.println("getExternalStorageDirectory(): "+sdDir.toString());
// System.out.println("getDataDirectory(): "+sdDir1.toString());
// System.out.println("getRootDirectory(): "+sdDir2.toString());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.example.testimg;
import java.io.File;
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.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
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,Bitmap originalBitmap)
{
super(context, attrs);
//originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.girl_a);
new1Bitmap = Bitmap.createBitmap(originalBitmap);
}
public HandWrite(Context contex,Bitmap originalBitmap){
super(contex);
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);
}
}