12306图片验证码效果实现

原创 2016年08月31日 15:53:37

效果如下:

演示图片

原理:从服务器获取的图片上,我们画上自己的图片,然后再显示出来。

核心代码如下在处理imageview点击事件前做如下操作:

   Bitmap bitmap = BitmapFactory.decodeResource(getResources(),  R.mipmap.yanzheng);//获取背景图片bitmap对象
Bitmap bm3 = BitmapFactory.decodeResource(getResources(),  R.mipmap.yanzheng);//获取我们要画上的图片的bitmap对象
Bitmap bmCopy = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());//复制背景bitmap
paint = new Paint();
 canvas = new Canvas(bmCopy);
canvas.drawBitmap(bitmap, new Matrix(), paint);//画下源背景bitmap
img.setImageBitmap(bmCopy);//为imageview设置图片即背景图片的副本

下面我们要处理imageview的点击事件,使其能够在点击的时候,在上面画上一个我们的图标:

   img.setOnTouchListener(new View.OnTouchListener() {

        //触摸屏幕时,触摸事件产生时,此方法调用
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            switch (action) {
                //用户手指摸到屏幕
             case MotionEvent.ACTION_DOWN:
                    startX = (int) event.getX();
                    startY = (int) event.getY();//得到触摸时的坐标
                    break;
                //用户手指正在滑动
             case MotionEvent.ACTION_MOVE:
             case MotionEvent.ACTION_UP:
             //手指离开时画图
                    canvas.drawBitmap(bm3, startX, startY, paint);
                    img.setImageBitmap(bmCopy);//为image设置图片
                    break;

            }
            //true:告诉系统,这个触摸事件由我来处理
            //false:告诉系统,这个触摸事件我不处理,这时系统会把触摸事件传递给imageview的父节点
            return true;
        }
    });

源码如下,请看第3次提交:app订票

版权声明:本文为博主原创文章,转载时请著名出处:http://blog.csdn.net/dg_summer

从12306谈起验证码的架构

验证码库,应该采用那种数据结构?Mysql还是其他的数据结构。在这里,可以尝试采用Redis的list结构来当作消息队列来使用或者其他的可用的消息队列。需要获取验证码时,从消息队列中Pop出一个值即可...

在图片上面添加一个图片,实现12306验证码的选择并获取相关坐标的功能

先看一下布局吧                                 然后是布局代码 ...
  • ch_jcak
  • ch_jcak
  • 2015年12月20日 20:31
  • 979

Java 识别图片验证码

Java 识别图片验证码 Ocr.setUp(); // one time setup Ocr ocr = new Ocr(); // create a new OCR engine ocr....
  • bobo0915
  • bobo0915
  • 2016年09月28日 18:39
  • 13297

MongoDB,另一个角度看数据

几年前 10gen 公司做了 SaaS 方面的研发,因为公司一个 MongoDB 产品存储接口的易用性,用户评价非常好,公司开始全力开发 MongoDB。也因此10gen 公司改名为 MongoDB。...

python 编写爬12306列车信息脚本

功能: 1:全自动爬所有车站列表 2:爬所有车站之间的所有车次,过滤重复,保存文件 爬过程中保存文件 遇到http异常,停止继续 脚本代码 #coding:utf-8 __auth...
  • watsy
  • watsy
  • 2013年04月26日 16:47
  • 3878

android仿12306图片验证码选择——自定义控件

安卓自定义控件——图片选择器大家好,最近公司的项目需求,顺手撸了一个自定义控件,顺便和大家分享一下。 (白心为选中状态) 可以自定义行的数量与列的数量,会根据传值自适应 可以配合volley完成网络...

Python破解12306图片验证码

不知从何时起,12306的登录验证码竟然变成了按字找图,可以说是又提高了一个等次,竟然把图像识别都用上了。不过有些图片,不得不说有些变态,图片的清晰图就更别说了,明显是从网络上的图库中搬过来的。 ...

12306验证码改用动态图片

12306验证码改用动态图片 媒体称快成“找你妹”                                   3月16号最新消息,为期40天的201...

python+pyqt实现12306图片验证效果

python+pyqt实现12306图片验证效果

验证码与flash图片交换效果的实现

验证码的使用基本代码:         生成验证码    function createCode(len) {        var seed = new Array...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:12306图片验证码效果实现
举报原因:
原因补充:

(最多只允许输入30个字)