扫描线

很多App都有扫描二维码功能,扫描的时候会有一个移动的扫描线,看起来很好实现,不过我网上搜了搜很多方法都是实时绘制出来的,计算点的位置然后重绘出来。我的第一感觉是完全没必要,其实这个东西本质上就是一张贴图加一个平移动画效果,所以就自己做了一个小小例子。


首先是扫描线的素材,这个是直接从微信apk里面扒出来的(其实你如果看中某个App的界面中的某个素材,可以直接下载apk,后缀改成zip解压,然后在里面慢慢找,一般都能找到png图片)。




然后贴出布局文件代码:


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     android:id="@+id/activity_main"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="com.example.user.myapplication.MainActivity">  
  8.     <View  
  9.         android:id="@+id/previewView"  
  10.         android:layout_width="300dp"  
  11.         android:layout_height="300dp"  
  12.         android:layout_centerInParent="true"  
  13.         android:background="@color/colorPrimary"/>  
  14.   
  15.     <ImageView  
  16.         android:id="@+id/scanHorizontalLineImageView"  
  17.         android:layout_width="300dp"  
  18.         android:layout_height="wrap_content"  
  19.         android:src="@drawable/horizontal_line" />  
  20.   
  21.     <ImageView  
  22.         android:id="@+id/scanVerticalLineImageView"  
  23.         android:layout_width="wrap_content"  
  24.         android:layout_height="300dp"  
  25.         android:src="@drawable/vertical_line"/>  
  26. </RelativeLayout>  
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.user.myapplication.MainActivity">
    <View
        android:id="@+id/previewView"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_centerInParent="true"
        android:background="@color/colorPrimary"/>
&lt;ImageView
    android:id="@+id/scanHorizontalLineImageView"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:src="@drawable/horizontal_line" /&gt;

&lt;ImageView
    android:id="@+id/scanVerticalLineImageView"
    android:layout_width="wrap_content"
    android:layout_height="300dp"
    android:src="@drawable/vertical_line"/&gt;
复制代码

</RelativeLayout>

界面很简单,previewView主要是用来模拟拍照的预览图,这个预览图提供了动画定位信息,接下来代码会讲。下面是核心代码:

 
 
 
 
  1. public class MainActivity extends AppCompatActivity {  
  2.   
  3.     private ImageView mScanHorizontalLineImageView;  
  4.     private ImageView mScanVerticalLineImageView;  
  5.     private View mPreviewView;  
  6.   
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.activity_main);  
  11.   
  12.         mScanHorizontalLineImageView = (ImageView) findViewById(R.id.scanHorizontalLineImageView);  
  13.         mScanVerticalLineImageView = (ImageView) findViewById(R.id.scanVerticalLineImageView);  
  14.         mPreviewView = findViewById(R.id.previewView);  
  15.     }  
  16.   
  17.     @Override  
  18.     public void onWindowFocusChanged(boolean hasFocus) {  
  19.         super.onWindowFocusChanged(hasFocus);  
  20.   
  21.         int[] location = new int[2];  
  22.   
  23.         // getLocationInWindow方法要在onWindowFocusChanged方法里面调用  
  24.         // 个人理解是onCreate时,View尚未被绘制,因此无法获得具体的坐标点  
  25.         mPreviewView.getLocationInWindow(location);  
  26.   
  27.         // 模拟的mPreviewView的左右上下坐标坐标  
  28.         int left = mPreviewView.getLeft();  
  29.         int right = mPreviewView.getRight();  
  30.         int top = mPreviewView.getTop();  
  31.         int bottom = mPreviewView.getBottom();  
  32.   
  33.         // 从上到下的平移动画  
  34.         Animation verticalAnimation = new TranslateAnimation(left, left, top, bottom);  
  35.         verticalAnimation.setDuration(3000); // 动画持续时间  
  36.         verticalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环  
  37.   
  38.         // 播放动画  
  39.         mScanHorizontalLineImageView.setAnimation(verticalAnimation);  
  40.         verticalAnimation.startNow();  
  41.   
  42.         // 从左到右的平移动画  
  43.         Animation horizontalAnimation = new TranslateAnimation(left, right, top, top);  
  44.         horizontalAnimation.setDuration(3000); // 动画持续时间  
  45.         horizontalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环  
  46.   
  47.         //播放动画  
  48.         mScanVerticalLineImageView.setAnimation(horizontalAnimation);  
  49.         horizontalAnimation.startNow();  
  50.   
  51.     }  
  52. }  
public class MainActivity extends AppCompatActivity {
private ImageView mScanHorizontalLineImageView;
private ImageView mScanVerticalLineImageView;
private View mPreviewView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mScanHorizontalLineImageView = (ImageView) findViewById(R.id.scanHorizontalLineImageView);
    mScanVerticalLineImageView = (ImageView) findViewById(R.id.scanVerticalLineImageView);
    mPreviewView = findViewById(R.id.previewView);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    int[] location = new int[2];

    // getLocationInWindow方法要在onWindowFocusChanged方法里面调用
    // 个人理解是onCreate时,View尚未被绘制,因此无法获得具体的坐标点
    mPreviewView.getLocationInWindow(location);

    // 模拟的mPreviewView的左右上下坐标坐标
    int left = mPreviewView.getLeft();
    int right = mPreviewView.getRight();
    int top = mPreviewView.getTop();
    int bottom = mPreviewView.getBottom();

    // 从上到下的平移动画
    Animation verticalAnimation = new TranslateAnimation(left, left, top, bottom);
    verticalAnimation.setDuration(3000); // 动画持续时间
    verticalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环

    // 播放动画
    mScanHorizontalLineImageView.setAnimation(verticalAnimation);
    verticalAnimation.startNow();

    // 从左到右的平移动画
    Animation horizontalAnimation = new TranslateAnimation(left, right, top, top);
    horizontalAnimation.setDuration(3000); // 动画持续时间
    horizontalAnimation.setRepeatCount(Animation.INFINITE); // 无限循环

    //播放动画
    mScanVerticalLineImageView.setAnimation(horizontalAnimation);
    horizontalAnimation.startNow();

}
复制代码

}

最后的效果大概就是这个样子的:



其实扫描识别二维码这个东西,个人理解就是照相机得到的帧不停地塞给图像处理模块,然后等待图像处理模块回调。

  • 本文已收录于以下专栏:
  • qq_29295665
    2017-04-01 18:06 1楼
  • https://github.com/youxin11544/Zxing-Scan-Anim
  <div class="more_comment" style="display: block;">
      <div id="comment_bar" class="trackgin-ad" data-mod="popu_385" style="display: none;"><a id="load_comments" class="btn btn-large more_comment_btn" page="2">查看 <span>1</span> 条热评<i class="icon iconfont icon-xiajiantou"></i></a></div>
  </div>

  <!-- <h3 class="recommend_tit" id="related">相关文章推荐</h3> -->
  <div class="recommend_list clearfix" id="rasss">
                                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
                  <a href="http://blog.csdn.net/jackli_git/article/details/60888844" target="_blank" strategy="BlogCommendFromBaidu_0">
                    <dd class="clearfix">
                      <h2 class="" style="margin-bottom: 0px;">Android自定义控件之扫描动画UI</h2>
                      <ul class="floatR">
                          <li class="avatar_img"><img src="http://avatar.csdn.net/5/5/E/3_jackli_git.jpg" alt="jackli_git" title="jackli_git"></li>
                          <li class="user_name">jackli_git</li>
                          <li class="time">2017年03月08日 23:53</li>
                          <li class="visited_num"><i class="icon iconfont icon-read"></i><span>366</span></li>
                      </ul><div class="summary">
                          前言最近有一个需求,就是做一个扫描的UI,看了很多扫描动画,发现酷狗的扫描动画挺漂亮的,所以就做了一个相似的扫描动画,废话不多说,先看一下最终的效果吧。 
复制代码

最终效果图介绍首先我们看一下这个效果,它由以...

                    </dd>
                  </a>
              </dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
                  <a href="http://blog.csdn.net/oxygen0106/article/details/40144781" target="_blank" strategy="BlogCommendFromBaidu_1">
                    <dd class="clearfix">
                      <h2 class="" style="margin-bottom: 0px;">Android自定义View实现雷达扫描动画</h2>
                      <ul class="floatR">
                          <li class="avatar_img"><img src="http://avatar.csdn.net/0/0/D/3_oxygen0106.jpg" alt="oxygen0106" title="oxygen0106"></li>
                          <li class="user_name">oxygen0106</li>
                          <li class="time">2014年10月16日 10:58</li>
                          <li class="visited_num"><i class="icon iconfont icon-read"></i><span>3672</span></li>
                      </ul><div class="summary">
                          在最近的项目中有用到雷达动画,于是                          </div>

                      
                    </dd>
                  </a>
              </dl>
                                                                  <dl class="">
              <script>
              (function() {
                var s = "_" + Math.random().toString(36).slice(2);
                document.write('<div id="' + s + '"></div>');
                (window.slotbydup=window.slotbydup || []).push({
                  id: '4765209',
                  container: s,
                  size: '808,120',
                  display: 'inlay-fix'
                });
              })();
              </script><div id="_locxtxfgw9"></div><script charset="utf-8" src="http://pos.baidu.com/scum?di=4765209&amp;dri=0&amp;dis=0&amp;dai=0&amp;ps=3171x351&amp;enu=encoding&amp;dcb=___adblockplus&amp;dtm=SSP_JSONP&amp;dvi=0.0&amp;dci=-1&amp;dpt=none&amp;tsr=0&amp;tpr=1516940393772&amp;ti=Android%E4%BD%BF%E7%94%A8%E5%8A%A8%E7%94%BB%E5%AE%9E%E7%8E%B0%E5%BE%AE%E4%BF%A1%E6%89%AB%E6%8F%8F%E7%BA%BF%E6%95%88%E6%9E%9C%20-%20CSDN%E5%8D%9A%E5%AE%A2&amp;ari=2&amp;dbv=2&amp;drs=1&amp;pcs=1903x922&amp;pss=1903x3204&amp;cfv=0&amp;cpl=16&amp;chi=1&amp;cce=true&amp;cec=UTF-8&amp;tlm=1516940393&amp;rw=922&amp;ltu=http%3A%2F%2Fblog.csdn.net%2Fadam_ling%2Farticle%2Fdetails%2F52771083&amp;ltr=http%3A%2F%2Fblog.csdn.net%2Fchenyong05314%2Farticle%2Fdetails%2F11737701&amp;lcr=https%3A%2F%2Fwww.sogou.com%2Flink%3Furl%3DDOb0bgH2eKh1ibpaMGjuy7IPUAf6hhgeGAnLQnVQRViuSdKpCMIsLvL5St7OmoXgRL6J5qmqNGyKP3KLOjXmv-hyRNlb2QBpiBiJF1N7K5o.&amp;ecd=1&amp;uc=1920x1040&amp;pis=-1x-1&amp;sr=1920x1080&amp;tcn=1516940394"></script><iframe scrolling="no" style="width: 100%; height: 122px; border: 0px;"></iframe>
            </dl>
                                                            <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="true" data-dsm="post">
                  <a class="clearfix" href="http://download.csdn.net/download/yyh352091626/9117405" target="_blank" strategy="searchFromBaidu_2">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>Android模仿微信、云播雷达扫描动画效果源码</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2015年09月18日 14:23</li>
                                    <li class="visited_num fileSize">2.26MB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
                  </a>
              </dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                  <a class="clearfix" href="http://download.csdn.net/download/qq_33897656/9948635" target="_blank" strategy="searchFromBaidu_3">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>android 智能扫描动画</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2017年08月24日 16:47</li>
                                    <li class="visited_num fileSize">2.26MB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
                  </a>
              </dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                  <a class="clearfix" href="http://download.csdn.net/download/xiabing082/8420529" target="_blank" strategy="BlogCommendFromBaidu_4">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>androidの高仿支付宝扫描动画效果</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2015年02月03日 17:31</li>
                                    <li class="visited_num fileSize">2.05MB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/zip.svg" alt="" title=""></dt>
                  </a>
              </dl><dl id="yd_a_d_feed_5" class="yd_a_d_feed_cla" style="height:124px;"><iframe scrolling="no" style="width: 100%; height: 90px; border: 0px;"></iframe></dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                  <a href="http://blog.csdn.net/xiabing082/article/details/43450045" target="_blank" strategy="BlogCommendFromBaidu_5">
                    <dd class="clearfix">
                      <h2 class="" style="margin-bottom: 0px;">androidの高仿支付宝扫描动画效果</h2>
                      <ul class="floatR">
                          <li class="avatar_img"><img src="http://avatar.csdn.net/D/4/5/3_xiabing082.jpg" alt="xiabing082" title="xiabing082"></li>
                          <li class="user_name">xiabing082</li>
                          <li class="time">2015年02月03日 15:23</li>
                          <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1964</span></li>
                      </ul><div class="summary">
                          androidの高仿支付宝扫描动画效果
复制代码
  1. 扫描动画效果,效果如图所示  

  2. 通过效果图,可以看到最边缘的一个圆环,顺时针转动,内部出现辐射光圈。   先看代码,创建一个Activity. pu...

                     </dd>
                   </a>
               </dl>
                                                                                   <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                   <a class="clearfix" href="http://download.csdn.net/download/yuzhiqiang_1993/10003605" target="_blank" strategy="searchFromBaidu_6">
                     <dd class="floatL">
                         <div class="summary">
                             <h2>android全盘扫面指定后缀名文件并动态显示到列表上demo</h2>
                             <div class="summary">
                                 <ul>
                                     <li class="time">2017年09月30日 14:36</li>
                                     <li class="visited_num fileSize">20.02MB</li>
                                     <li class="download_btn">下载</li>
                                 </ul>
                             </div>
                         </div>
                     </dd>
                     <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
                   </a>
               </dl>
                                                                                   <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                   <a href="http://blog.csdn.net/chaoyu168/article/details/52036806" target="_blank" strategy="searchFromBaidu_7">
                     <dd class="clearfix">
                       <h2 class="" style="margin-bottom: 0px;">Android--雷达扫描动态界面</h2>
                       <ul class="floatR">
                           <li class="avatar_img"><img src="http://avatar.csdn.net/3/7/2/3_chaoyu168.jpg" alt="chaoyu168" title="chaoyu168"></li>
                           <li class="user_name">chaoyu168</li>
                           <li class="time">2016年07月26日 16:13</li>
                           <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1291</span></li>
                       </ul><div class="summary">
                           DEMO下载地址:
    复制代码

效果图:

源码: package com.zihao.radar;

import android.app.Activity; import android.os.Bundle;...

                    </dd>
                  </a>
              </dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                  <a href="http://blog.csdn.net/ykb19891230/article/details/49801797" target="_blank" strategy="BlogCommendFromBaidu_8">
                    <dd class="clearfix">
                      <h2 class="" style="margin-bottom: 0px;">Android自定义View(五)——带扫描线的View</h2>
                      <ul class="floatR">
                          <li class="avatar_img"><img src="http://avatar.csdn.net/E/2/C/3_ykb19891230.jpg" alt="ykb19891230" title="ykb19891230"></li>
                          <li class="user_name">ykb19891230</li>
                          <li class="time">2015年11月12日 17:09</li>
                          <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1749</span></li>
                      </ul><div class="summary">
                          因为技术原理比较简单,所以就不详细赘述实现的细节了。效果需求 
复制代码

一个具有圆形背景的等宽等高的视图上,上下来回滚动一个渐变的矩形,矩形的两边不能超出圆,也不能比圆小......

                    </dd>
                  </a>
              </dl>
                                                                                  <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
                  <a href="http://blog.csdn.net/chenmohousuiyue/article/details/52704645" target="_blank" strategy="BlogCommendFromBaidu_9">
                    <dd class="clearfix">
                      <h2 class="">实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)</h2>
                      <div class="summary">
                          实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环),主要用到Paint类,drawRect()以及drawLine()函数。...                          </div>

                      <ul class="">
                          <li class="avatar_img"><img src="http://avatar.csdn.net/E/6/7/3_chenmohousuiyue.jpg" alt="chenmohousuiyue" title="chenmohousuiyue"></li>
                          <li class="user_name">chenmohousuiyue</li>
                          <li class="time">2016年09月29日 19:51</li>
                          <li class="visited_num"><i class="icon iconfont icon-read"></i><span>893</span></li>
                      </ul>
                    </dd>
                  </a>
              </dl>
                                                <!-- <script async="async" charset="utf-8" src="https://shared.ydstatic.com/js/yatdk/3.0.0/stream.js" data-notify="bannerMulti_notify" data-insert-nodes="yd_a_d_feed_1,yd_a_d_feed_13,yd_a_d_feed_18,yd_a_d_feed_23,yd_a_d_feed_28,yd_a_d_feed_33" data-id="8935aa488dd58452b9e5ee3b44f1212f" data-hide-ad-label="0" data-div-Style="width:100%;padding:16px 35px 16px 10px;" data-img-Style="float:right;width:120px;" data-tit-Style="font-size:20px;font-weight:bold;margin-bottom:10px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;" data-des-Style="width:700px;font-size:14px;font-family: 'PingFang SC', 'Microsoft YaHei', SimHei, Arial, SimSun;" > </script> -->
  
                              <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/TDCQZD/article/details/75635738" target="_blank" strategy="searchFromBaidu_10">
                <dd>
                    <h2 style="margin-bottom: 0px;">Android动画学习(三)之补间动画常用的实例</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/C/F/D/3_tdcqzd.jpg" alt="TDCQZD" title="TDCQZD"></li>
                        <li class="user_name">TDCQZD</li>
                        <li class="time">2017年07月21日 12:04</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>219</span></li>
                    </ul><div class="summary">
                        Android动画学习(三)之补间动画常用的实例本篇主要介绍补间动画几个使用的功能
复制代码

App欢迎界面的动画跳转 输入框EditText没有输入的水平晃动动画 仿360雷达扫描旋转动画 App欢迎界面的透...

                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/hupei/article/details/51859171" target="_blank" strategy="BlogCommendFromBaidu_11">
                <dd>
                    <h2 style="margin-bottom: 0px;">Android Zxing 扫描器 扫描框、扫描线定制样式</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/0/5/F/3_hupei.jpg" alt="hupei" title="hupei"></li>
                        <li class="user_name">hupei</li>
                        <li class="time">2016年07月08日 10:59</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>8284</span></li>
                    </ul><div class="summary">
                        一、概述相信Adnroid开发都知道,世界上有四款扫描器,Zxing 、Zbar ,Barcode4J、OkapiBarcode 前二者应用较广泛,至于介绍与区别就在此阐述,网上有很多。此文主要介绍在...                        </div>

                    
                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a class="clearfix" href="http://download.csdn.net/download/superviewer/5298773" target="_blank" strategy="BlogCommendFromBaidu_12">
                <dd class="floatL">
                    <div class="summary">
                        <h2>OpenGL实现多边形扫描转换的扫描线算法-带动画效果</h2>
                        <div class="summary">
                            <ul>
                                <li class="time">2013年04月25日 11:38</li>
                                <li class="visited_num fileSize">459KB</li>
                                <li class="download_btn">下载</li>
                            </ul>
                        </div>
                    </div>
                </dd>
                <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/rar.svg" alt="" title=""></dt>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/zhao_liwei/article/details/50833103" target="_blank" strategy="BlogCommendFromBaidu_13">
                <dd>
                    <h2 style="margin-bottom: 0px;">安卓雷达扫描动画效果实现</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/E/8/D/3_zhao_liwei.jpg" alt="zhao_liwei" title="zhao_liwei"></li>
                        <li class="user_name">zhao_liwei</li>
                        <li class="time">2016年03月09日 10:29</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2278</span></li>
                    </ul><div class="summary">
                        主程序:
复制代码

package com.seehow.elabpupil.exp;

import com.seehow.elabpupil.R; import com.seehow.elabpupil.v...

                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/u011290399/article/details/9919885" target="_blank" strategy="BlogCommendFromBaidu_14">
                <dd>
                    <h2 style="margin-bottom: 0px;">二维码扫描之动画效果</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/2/8/4/3_u011290399.jpg" alt="u011290399" title="u011290399"></li>
                        <li class="user_name">u011290399</li>
                        <li class="time">2013年08月12日 11:31</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>3429</span></li>
                    </ul><div class="summary">
                        使用ZXing做出的二维码扫描界面
复制代码

界面上的黄色圆点动画效果看着不是很明显 看着没什么太大的效果 经常使用微信扫一扫功能的人都感觉,微信的动画效果看着很不错 看一下ZXing的Viewfind...

                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/chenyong05314/article/details/11737701" target="_blank" strategy="BlogCommendFromBaidu_15">
                <dd>
                    <h2 style="margin-bottom: 0px;">微信二维码扫描时的动画效果  线</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/6/8/B/3_chenyong05314.jpg" alt="chenyong05314" title="chenyong05314"></li>
                        <li class="user_name">chenyong05314</li>
                        <li class="time">2013年09月16日 16:04</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>5160</span></li>
                    </ul><div class="summary">
                        UIView *line = [[UIView alloc] initWithFrame:CGRectMake((viewWidth - width)/2, origin_y, width, 1)];...                        </div>

                    
                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/robertkun/article/details/42740159" target="_blank" strategy="BlogCommendFromBaidu_16">
                <dd>
                    <h2>Android学习2: Android使用SurfaceView绘制一条移动的线段</h2>
                    <div class="summary">
                        今天 学习了一下, 怎样使用 SurfaceView. SurfaceHolder, Canvas 和 Paint 来绘制一条移动的线段
复制代码

例子, 都是我从网上找的, 只不过是自已简化了一些, 改掉了一...

                    <ul>
                        <li class="avatar_img"><img src="http://avatar.csdn.net/6/A/7/3_robertkun.jpg" alt="robertkun" title="robertkun"></li>
                        <li class="user_name">robertkun</li>
                        <li class="time">2015年01月15日 13:45</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2558</span></li>
                    </ul>
                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/luckrr/article/details/52767883" target="_blank" strategy="BlogCommendFromBaidu_17">
                <dd>
                    <h2 style="margin-bottom: 0px;">Zxing界面优化(竖屏、拉伸处理、扫描框大小和扫描线移动)</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/3/D/4/3_luckrr.jpg" alt="luckrr" title="luckrr"></li>
                        <li class="user_name">luckrr</li>
                        <li class="time">2016年10月09日 16:51</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2935</span></li>
                    </ul><div class="summary">
                        项目上有扫描二维码的需求,目前比较成熟的框架有zbar,zxing。但各有优势,个人觉得还是zbar对扫描的封装效率比较高些,当时我做的是扫描有的zbar,识别本地图库
复制代码

的有的是zxing,后来发现...

                </dd>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a class="clearfix" href="http://download.csdn.net/download/chenmohousuiyue/9643338" target="_blank" strategy="BlogCommendFromBaidu_18">
                <dd class="floatL">
                    <div class="summary">
                        <h2>实现android端的类似二维码的扫描窗口(中间亮,四周暗,扫描线循环)</h2>
                        <div class="summary">
                            <ul>
                                <li class="time">2016年09月29日 19:42</li>
                                <li class="visited_num fileSize">3KB</li>
                                <li class="download_btn">下载</li>
                            </ul>
                        </div>
                    </div>
                </dd>
                <dt class="floatR"><img class="maxwidth" src="http://csdnimg.cn/release/download/old_static/images/minetype/unkonw.svg" alt="" title=""></dt>
            </a>
        </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_387" data-poputype="feed" data-feed-show="false" data-dsm="post">
            <a href="http://blog.csdn.net/qy1993qy/article/details/52824888" target="_blank" strategy="BlogCommendFromBaidu_19">
                <dd>
                    <h2 style="margin-bottom: 0px;">Android实现带动画效果的自定义View</h2>
                    <ul class="floatR">
                        <li class="avatar_img"><img src="http://avatar.csdn.net/4/4/9/3_qy1993qy.jpg" alt="qy1993qy" title="qy1993qy"></li>
                        <li class="user_name">qy1993qy</li>
                        <li class="time">2016年10月15日 19:55</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>215</span></li>
                    </ul><div class="summary">
                        准备工作:
复制代码

考虑这个自定义view需要什么属性来方便在xml布局里面改。 在values/attrs.xml里面添加自定义属性...

                </dd>
            </a>
        </dl>
                    </div>
复制代码
更新日志: 1.添加了新工具-自定义扫描配置工具(可视化),通过此工具可轻松配置出任意线性扫描效果。 2.智能吸附状态下,加入了颜色值的随机选择,不再是单一的黑色,视觉感增强。 3.在关闭自定义扫描配置工具后,程序的初始窗口将作为自定义扫描效果的预览窗口,不再只是摆设。 4.更换了软件初始界面的背景图片。 5.更改软件版本标识为: 街机扫描线v7(正式版)。 6.大幅度优化了软件性能,使其更加强悍。 7.但愿小伙伴们都能配置出自己喜欢的扫描效果,加油哦! ------------------------------------------------------------------------ 自定义扫描配置工具的按钮与功能所有帮助提示: [重置按钮]未保存状态下,会将当前打开的配置文件恢复到打开前的配置,同时具有清除底图的功能. [储存到默认按钮] 可以将当前配置储存到 自定义配置文件.ini文件中. [关闭按钮] 直接返回主窗口,但不会保存配置.关闭的同时将启动主窗口自定义预览模式. [另存为按钮] 可以将当前配置另存为本程序支持的后缀为ini的配置文件,以便将配置分享给小伙伴们使用. [保存按钮] 保存当前配置到当前打开的配置文件. [打开按钮] 可以打开任意由本程序所生成的后缀为.ini的文件. [底图按钮] 可以载入任意一张后缀名为BMP,JPG,GIF,PNG的图片到可视化区域的最底层来帮助调试. [颜色选择] 可以改变可视化区域的背景色来帮助调试.合理搭配背景色,可更清楚的看到自定义扫描效果. [RGB] 调整RGB的值的同时,扫描线条的颜色也将随之改变. [扫描类型] 0.无效果 1.直线 2.划线 3.点线 4.点划线 5.双点划线 6.内直线. [扫描方式] 用来改变扫描线条的像素大小的一种方式. [横向间距] 横向扫描时线条与线条之间的间距. [竖向间距] 竖向扫描时线条与线条之间的间距. [斜向间距] 斜向扫描时线条与线条之间的间距. [反斜向间距] 反斜向扫描时线条与线条之间的间距. 控制条的操作:1.拖拽滑块 2.在滑块左右两侧的选择区域也可拖拽,或单击[增减为1]或按住[每次增减为1]. [默认按钮] 将默认配置写入 自定义配置文件.ini 文件中并显示出来. 加载自定义配置文件:进入控制台时,程序将默认以 自定义配置文件.ini 的配置作为首选项来进行扫描. 载入别人分享的配置文件:点击[打开]按钮,选择别人分享给你的配置文件, 点击[储存到默认按钮],关闭工具后即可看到效果. 点击关闭按钮后,程序会自动跳转到自定义扫描效果预览界面. 查看帮助: 打开软件后按快捷键F1或点击菜单栏-关于-帮助 即可。 更新版本: 打开软件后按快捷键F2或点击菜单栏-关于-更新 即可。 软件自带的扫描模式滤镜表: 横向隔行扫描x1 横向隔行扫描x2 横向双行扫描x1 横向双行扫描x2 竖向隔行扫描x1 竖向隔行扫描x2 竖向双行扫描x1 竖向双行扫描x2 标准网格扫描x1 标准网格扫描x2 双线交互式隔行扫描 网状交互式扫描x1 网状交互式扫描x2 网状交互式扫描x3 块状扫描x1 块状扫描x2 斜向隔行扫描x2 反斜向隔行扫描x2 斜向双行扫描x1 反斜向双行扫描x1 斜向双行扫描x2 反斜向双行扫描x2 横向磁性隔行扫描 竖向磁性隔行扫描 横向磁性双行扫描 竖向磁性双行扫描 横向棱形扫描x1 横向棱形扫描x2 横向反棱形扫描x1 横向反棱形扫描x2 竖向棱形扫描x1 竖向棱形扫描x2 竖向反棱形扫描x1 竖向反棱形扫描x2 实心圆序列扫描 实心点序列扫描 圆点交互式扫描 圆矩交互式扫描 矩形交互式扫描 十字交互式扫描 非扫描亮度调节 CRT模式扫描
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值