本文章主要介绍拍完照片后对图片的渲染进行处理

可以对拍出的照片进行选择不同的滤镜,令在图片上附有编辑框,供大家对图片进行描述,这是一个可以手动拖动的编辑框,在这里主要介绍下,手指放到控件上什么情况下视为点击,这里就牵涉到一个问题,点击是需要弹出软键盘的,拖动则不应该有软键盘弹出,然而在拖动的过程中还需屏蔽掉因为长按导致的弹出系统的输入法的弹框,当点击后弹出软键盘,再进行拖动操作,软键盘因立即消失;还有当为图片设置不同的滤镜时,这牵扯到控件重绘的问题,这样就会导致原先拖动的编辑框,经过设置滤镜后又回到了原位的问题,这些情况在这里都是一一得到解答:

这是手势离开后的代码:

if (rangeDifferenceX > 0 && rangeDifferenceX <= mDistance) {
if (rangeDifferenceY >= 0 && rangeDifferenceY <= mDistance) {
v.setFocusable(true);
v.setFocusableInTouchMode(true);
//Log.d("是否是点击事件:", true + "");

//mChangedListener.openKeyboard();
} else {
if (rangeDifferenceY <= 0 && rangeDifferenceY >= -mDistance) {
v.setFocusable(true);
v.setFocusableInTouchMode(true);
//Log.d("是否是点击事件:", true + "");

//mChangedListener.openKeyboard();
} else {
v.setFocusable(false);
v.setFocusableInTouchMode(false);
//Log.d("是否是点击事件:", false + "");
}
}
} else {
if (rangeDifferenceX <= 0 && rangeDifferenceX >= -mDistance) {
v.setFocusable(true);
v.setFocusableInTouchMode(true);
//Log.d("是否是点击事件:", true + "");

//mChangedListener.openKeyboard();
} else {
v.setFocusable(false);
v.setFocusableInTouchMode(false);
//Log.d("是否是点击事件:", false + "");
}
}

这是屏蔽掉系统的输入法弹框的代码:edittext.setLongClickable(false);

这是处理重绘导致的控件回到原位的代码:

先记录控件操作的最后位置坐标:setTblr(t, b, l, r);

具体方法:

private void setTblr(int t, int b, int l, int r) {
eTop = t;
eBottom = b;
eLeft = l;
eRight = r;
}

@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (changed) {

if (eLeft == -1 || eTop == -1 || eRight == -1 || eBottom == -1) {
return;
}

layout(eLeft, eTop, eRight, eBottom);

}

具体功能详见效果图:

现提供demo下载地址:

http://download.csdn.net/detail/hongbingfans/6216703

拍照图片滤镜sample的更多相关文章

  1. Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片

    Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 最近也是在搞个破相机,兼容性那叫一个不忍直视啊,于是自己翻阅了一些基本的资料,自己实现了一 ...

  2. 利用 AFN 上传相册或拍照图片

    概述 自定义上传图片请求,自定义调取相册及拍照,方便多处使用时调用. 详细 代码下载:http://www.demodashi.com/demo/10718.html 由于项目中多处需要上传图片,我们 ...

  3. android选择图片或拍照图片上传到服务器(包括上传参数)

    From:http://blog.csdn.net/springsky_/article/details/8213898具体上传代码: 1.选择图片和上传界面,包括上传完成和异常的回调监听 [java ...

  4. filter 图片滤镜的各种设置

    filter 图片滤镜 给当前元素加滤镜_改变它的明亮度 定义:filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度).作用在图片上或元素上.div{ },或 d ...

  5. Android 实例解说加入本地图片和调用系统拍照图片

    在项目的开发过程我们离不开图片.而有时候须要调用本地的图片,有时候须要调用拍照图片.同一时候实现拍照的方法有两种,一种是调用系统拍照功能.还有一种是自己定义拍照功能. 而本博文眼下仅仅解说第一种方法, ...

  6. HTML5----CSS3图片滤镜(filter)特效

    支持Chrome: 暂不支持浏览器:FF,IE... 希望后者努力 效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGFteXM=/font/5a ...

  7. android选择图片或拍照图片上传到server(包含上传參数)

    在9ria论坛看到的.还没測试,先Mark与大家分享一下. 近期要搞一个项目,须要上传相冊和拍照的图片.不负所望,最终完毕了! 只是须要说明一下,事实上网上非常多教程拍照的图片.都是缩略图不是非常清晰 ...

  8. android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用、图片滤镜处理等源码

    Android仿微信朋友圈查看图片下拽返回. Android图片滤镜处理,相机滤镜处理效果源码 Android自定义View源码:一个水平的进度条 基于MVP-Clean + Weex + RxJav ...

  9. Android 图片滤镜工具——高斯模糊

    ===================高斯模糊========================= 创建一个 ImageFilter 类(滤镜工具),代码如下: import android.graph ...

随机推荐

  1. tar 基础

    如何安装---> 出门右转百度. 1.基本使用方式 tar [option] desc_file source_file desc_file 表示要生成的打包文件:source_file 表示需 ...

  2. 用C语言打印出三角函数

    在网上看到一个实例,是用C 中的* 打印出三角函数cos #include<stdio.h> #include<math.h> int main() { double y; i ...

  3. VTK中国文字显示和简单的医疗图像浏览软件

    使用VTK做一个简单的医学图像浏览软件(在http://blog.csdn.net/www_doling_net/article/details/8668870这篇博文的基础上改的),支持标准的医学图 ...

  4. [译]URL和URI的区别

    译者:华科小涛:http://www.cnblogs.com/hust-ghtao/: 初学http协议,就被这两个相似的术语搞蒙了,查了很多资料,总算搞清楚了.(找资料还是英文啊,靠谱...). 本 ...

  5. HDOJ 1598 Kruscal

    贪心思想的Kruscal:先对边排序,再从第一条边开始,一旦start point 和 end poiont 连上,就break #include <stdio.h> #include & ...

  6. 【转载】django在eclipse环境下建web网站

    一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的设置集,包含了数据库配置.Django详细选项设 ...

  7. 刘汝佳黑书 pku等oj题目

    原文地址:刘汝佳黑书 pku等oj题目[转]作者:小博博Mr 一.动态规划参考资料:刘汝佳<算法艺术与信息学竞赛><算法导论> 推荐题目:http://acm.pku.edu. ...

  8. Connection reset by peer问题分析

    extremetable导出excel,弹出一个下载窗口,这时不点下载而点取消,则报下面的异常: ClientAbortException Caused by: java.net.SocketExce ...

  9. Linux进程阻塞的相关知识

    1.如果驱动程序无法立即满足要求,该如何响应? 当数据不可用时,用户可能调用read:或者进程试图写入数据,但因为输出缓冲区已满,设备还未准备好接受数据.调用进程通常不会关心这类问题,程序员只会简单调 ...

  10. 关于运行robotium提示连接不上jar问题

    robotium运行测试helloworld报错: java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo at c ...