android实现图片按任意路径截取
2012-07-18 20:09
239 查看
使用 android提供的Path实現图片的截取
重写View的onTouchEvent方法和onDraw方法,onTouchEvent负责实现截取路径的构件,onDraw进行刷新页面,重写View类的代码如下 :
未截取时效果:
画一个路径截取效果图:
附件地址:http://download.csdn.net/detail/xiaoxiaobian3310903/4436969
重写View的onTouchEvent方法和onDraw方法,onTouchEvent负责实现截取路径的构件,onDraw进行刷新页面,重写View类的代码如下 :
public class MyView extends View { private Drawable mDrawable; private Path mPath; private float mX = -1; private float mY = -1; private float mPastX; private float mPastY; public MyView(Context context) { super(context); // TODO Auto-generated constructor stub mPath = new Path(); } public void setDrawable(Drawable pDrawable){ mDrawable = pDrawable; } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); Log.i("xiao", "onDraw"); mDrawable.setBounds(0, 0, getWidth(), getHeight()); Rect lRect = mDrawable.getBounds(); Log.i("xiao", "lRect.left = " + lRect.left + " top = " + lRect.top + " right = " + lRect.right + " bottom = " + lRect.bottom); if(!mPath.isEmpty()){ Log.i("xiao", "!mPath.isEmpty()"); canvas.clipPath(mPath); //mDrawable.draw(canvas); } mDrawable.draw(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub Log.i("xiao", "onTouchEvent"); int lAction = event.getAction(); if(mX != -1){ mPastX = mX; mPastY = mY; } mX = event.getX(); mY = event.getY(); switch(lAction){ case MotionEvent.ACTION_DOWN: mPath.reset(); mPath.moveTo(mX, mY); break; case MotionEvent.ACTION_MOVE: mPath.quadTo(mPastX, mPastY, (mX + mPastX) / 2, (mY + mPastY) / 2); break; case MotionEvent.ACTION_UP: mPath.lineTo(mX, mY); mX = -1; mY = -1; invalidate(); break; default: break; } return true; } }Activity主要负责获取和设置Drawable和设置布局,代码如下:
private MyView mView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mView = new MyView(this); mView.setDrawable(this.getResources().getDrawable(R.drawable.test1)); this.setContentView(mView); }
未截取时效果:
画一个路径截取效果图:
附件地址:http://download.csdn.net/detail/xiaoxiaobian3310903/4436969
相关文章推荐
- android实现图片按任意路径截取
- Android实现让图片在屏幕上任意移动的方法(拖拽功能)
- Android通过手势实现图片按照指定路径移动
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- 【Android】Android实现截取当前屏幕图片并保存至SDCard
- Android下图片可拖动到任意位置的效果的实现源码
- Android通过手势实现图片按照指定路径移动
- 自已写了个GDI类,实现了相对路径载入任意类型的图片函数,并加一个在CRECT矩形上贴图的函数(5月25日写)
- android中实现图片的选择并通过uri获取路径
- Android-->圆角图片,圆角任意View,圆角父布局Layout(任意形状的View且超简洁实现)
- Android实现拍照截取和相册图片截取
- Android-->圆角图片,圆角任意View,圆角父布局Layout(任意形状的View且超简洁实现)
- Android中利用Picasso实现图片压缩指定任意尺寸
- android中实现从一个图片中截取一部分,在翻转,成一个圆形显示
- Android下图片或按钮等可拖动到任意位置的效果实现源码
- Android下图片或按钮等可拖动到任意位置的效果实现源码
- Android:实现截取当前屏幕图片并保存至SDCard
- Android下图片或按钮等可拖动到任意位置的效果实现源码
- 0行代码实现任意形状图片展示--android-anyshape