zoukankan      html  css  js  c++  java
  • 拍照图片滤镜sample

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


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


    这是手势离开后的代码:

    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



  • 相关阅读:
    tcp/ip协议listen函数中backlog參数的含义
    oracle exp实例
    js21---单体(单例)模式
    js20---接口3种方式
    js19--继承终极版本
    js18--继承方式
    js17---创建对象:构造函数式和原型组合模式、动态原型模式、稳妥构造函数式
    js16--自定义原型对象
    js---15,模拟数组的ecah方法
    js14--原型2
  • 原文地址:https://www.cnblogs.com/james1207/p/3303836.html
Copyright © 2011-2022 走看看